Controlul ToolStrip
Acest control implementează o bară de instrumente formată din mai multe butoane, butoane drop-down, comboBox-uri, liste derulante, etichete. Caracteristic acestor bare de instrumente este faptul că au afișată pe suprafața instrumentelor (butoanelor) lor o imagine sugestivă (care la origine este un fișier de tip JPG sau GIF oarecare), scalată automat de sistem la dimensiunea butonului, și un text auxiliar care se afișează la staționarea timp de 1 - 2 secunde a mous-ului pe sprafața butonului. Aceste butoane dublează funcțiile meniului, de aceea codul pentru evenimentul Click este același ca cel al itemului corespunzător de meniu.Controlul RichTextBox
Acest control preia toate caracteristicile lui TextBox, și în plus oferă posibilitatea de formatare a textului (italic, bold, underline, culoare, dimensiune, font, paragraf). Caracteristic butonului este faptul că prin andocare la fereastra părinte își maximizează suprafața de lucru. Conținutul său poate fi introdus din tastatură sau copiat dintr-un fișier RTF.
Aplicația Editor de fișiere RTF
Deschidem o aplicatie nouă, pe care o numim RichTextBoxApp. Aducem pe forma Form1 un MenuStrip, un ToolStrip, și câte un dialog din cele studiate în lecția trecută (openFile, saveFile, font și color).
Expandăm meniul la fel ca în lecția precedentă (File -Nou -Open -Save -Exit și respectiv Format-Font - Color).
În plus, putem adăuga un nou meniu, Edit, cu itemii Copy, Cut, Paste. Modul în care putem utiliza aceste funcții îl găsim în help-ul contextual Microsoft Visual Studio. Îndată ce scriem în editorul de cod numele obiectului richTextBox1 și punct, sistemul ne afișează list derulantă a metodelor disponibile.
Expandăm controlul ToolStrip și generăm atâtea butoane câte ne trebuie pentru implementarea itemilor din meniu, adică 5: nou, open, save, font și color).
Căutăm în calculator sau pe internet imagini sugestive pentru asociat cu bara de instrumente. Asocierea se face prin click dreapta pe buton, apoi Set image...
Setăm textul auxiliar care se afișează la staționarea mous-ului pe instrumente, prin setarea corespunzătoare a proprietatii Text a fiecărui instrument, din panoul Proprietăți.
Creăm metodele handler pentru evenimentul Click al fiecărui item de meniu, apoi copiem identic în instrumentul corespunzător. Operațiile de deschidere și închidere de fișier se fac cu ajutorul metodelor loadFile, respectiv SaveFile ale controlului richTextBox1, metode care primesc ca argument numele fișierului returnat de dialogul aferent, astfel:
//deschide fisierul cu metoda LoadFile
richTextBox1.LoadFile(openFileDialog1.FileName);
//salvare fisier cu extensia .rtf
richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
//portiunea selectata din text preia caracteristicile alese de utilizator
richTextBox1.SelectionFont = fontDialog1.Font;
//cod care actualizeaza culorile in document
richTextBox1.SelectionColor = colorDialog1.Color;
Aplicația completă este următoarea:
namespace RichTextBoxApp
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void nouToolStripMenuItem_Click(object sender, EventArgs e)
{
//sterge textul controlului
richTextBox1.Text = "";
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
//sterge textul controlului
richTextBox1.Text = "";
}
private void deschideToolStripMenuItem_Click(object sender, EventArgs e)
{
//titlul dialogului
openFileDialog1.Title = "Deschide fisier";
// seteaza tipurille de fisier
openFileDialog1.Filter = "Fisiere text |*.txt| fisiere rtf|*.rtf";
//in comboBox-ul File name nu vrem sa apara la deschiderea dialogului nici un nume
openFileDialog1.FileName = "";
//directorul care se deschide in mod implicit
openFileDialog1.InitialDirectory = "MyDocuments";
//atentionare daca numele nu exista
openFileDialog1.CheckFileExists = true;
//deschide dialogul OpennFileDialog
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //deschide fisierul cu metoda LoadFile
richTextBox1.LoadFile(openFileDialog1.FileName);
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
//titlul dialogului
openFileDialog1.Title = "Deschide fisier";
// seteaza tipurille de fisier
openFileDialog1.Filter = "Fisiere text |*.txt| fisiere rtf|*.rtf";
//in comboBox-ul File name nu vrem sa apara la deschiderea dialogului nici un nume
openFileDialog1.FileName = "";
//directorul care se deschide in mod implicit
openFileDialog1.InitialDirectory = "MyDocuments";
//atentionare daca numele nu exista
openFileDialog1.CheckFileExists = true;
//deschide dialogul OpennFileDialog
if (openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //deschide fisierul cu metoda LoadFile
richTextBox1.LoadFile(openFileDialog1.FileName);
}
}
private void salvezaToolStripMenuItem_Click(object sender, EventArgs e)
{
//titlul dialogului
saveFileDialog1.Title = "salveaza fisierul";
//extensia implicita de salvare
saveFileDialog1.DefaultExt = ".rtf";
//atentionare de suprascriere
saveFileDialog1.OverwritePrompt = true;
//deschide dialogul de salvare fisier
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //salvare fisier cu extensia .rtf
richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
}
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
//titlul dialogului
saveFileDialog1.Title = "salveaza fisierul";
//extensia implicita de salvare
saveFileDialog1.DefaultExt = ".rtf";
//atentionare de suprascriere
saveFileDialog1.OverwritePrompt = true;
//deschide dialogul de salvare fisier
if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //salvare fisier cu extensia .rtf
richTextBox1.SaveFile(saveFileDialog1.FileName, RichTextBoxStreamType.RichText);
}
}
private void iesireToolStripMenuItem_Click(object sender, EventArgs e)
{
Application.Exit();
}
private void fontToolStripMenuItem_Click(object sender, EventArgs e)
{
// se deschide dialogul font
if (fontDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //portiunea selectata din text preia caracteristicile alese de utilizator
richTextBox1.SelectionFont = fontDialog1.Font;
}
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
{
// se deschide dialogul font
if (fontDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{ //portiunea selectata din text preia caracteristicile alese de utilizator
richTextBox1.SelectionFont = fontDialog1.Font;
}
}
}
private void culoareToolStripMenuItem_Click(object sender, EventArgs e)
{
//deschide dialogul ColorDialog
if (colorDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//cod care actualizeaza culorile in document
richTextBox1.SelectionColor = colorDialog1.Color;
}
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
//deschide dialogul ColorDialog
if (colorDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
//cod care actualizeaza culorile in document
richTextBox1.SelectionColor = colorDialog1.Color;
}
}
}
}
Niciun comentariu:
Trimiteți un comentariu