Próbuję stworzyć edytor tekstu z zakładkami, żebym mógł otworzyć kilka plików na kilku zakładkach. Pierwszą zakładkę stworzyłem w edytorze wizualnym i zawiera ona tylko pole rchText. Do tego zrobiłem toolstripy z buttonami na pogrubienie, kursywę itp. itd.
Mam przycisk, który tworzy nową zakładkę, oto kod:
private void tripNowazakladka_Click(object sender, EventArgs e)
{
TabPage nowazakladka = new TabPage("nowa");
Zakladki.Controls.Add(nowazakladka);
RichTextBox rchText = new RichTextBox();
rchText.Name = "rchText";
rchText.ContextMenuStrip = contextMenuStrip1;
rchText.Dock = DockStyle.Fill;
Zakladki.SelectedTab = nowazakladka;
nowazakladka.Controls.Add(rchText);
}
Niby richtextboxy tworzone przez ten przycisk mają tą samą nazwę co pierwszy richtextbox, ale nie mogę się do nich dostać.
Kod przycisku pogrubienia tekstu:
private void tripBold_Click(object sender, EventArgs e)
{
if (rchText.SelectionFont == null)
{
return;
}
FontStyle style = rchText.SelectionFont.Style;
if (rchText.SelectionFont.Bold)
{
style &= ~FontStyle.Bold;
}
else
{
style |= FontStyle.Bold;
}
rchText.SelectionFont = new Font(rchText.SelectionFont, style);
rchText.Select();
}
Jak go zmodyfikować, żebym działał dla nowo utworzonych zakładek (i ich kontrolek)? Jak już będę wiedział to, to poradzę sobie z resztą przycisków.
I jeszcze mam event textchanged dla mojego pierwszego richtextboxa:
private void rchText_TextChanged(object sender, EventArgs e)
{
int dlugosc = rchText.TextLength;
lblIloscZnakow.Text = "Znaki: " + Convert.ToString(dlugosc); //label pokazujący ilość znaków w tekście
if (rchText.SelectionFont.Bold)
{
tripBold.Checked = true;
}
else
{
tripBold.Checked = false;
}
}
Chcę żeby ten event również 'obowiązywał' dla tych nowych richtextboxów.
Jak to zrobić?