TextBox Zeilennummerierung
Ich habe versucht einer meiner RT-Box eine Zeilennummerierung zu spendieren, zwar meckert VS nicht aber machen tut es auch nichts *gg Bin ich mit meiner Variante auf dem holzweg da ich dieses in einer Komponentenklasse brauche statt in einem Benutzersteuerlement.
Ich habe versucht einer meiner RT-Box eine Zeilennummerierung zu spendieren, zwar meckert VS nicht aber machen tut es auch nichts *gg Bin ich mit meiner Variante auf dem holzweg da ich dieses in einer Komponentenklasse brauche statt in einem Benutzersteuerlement.
Code:
public Form1()
{
InitializeComponent();
numberLabel.Font = new Font(richTextBox1.Font.FontFamily, richTextBox1.Font.Size + 1.019f);
}
private void updateNumberLabel()
{
Point pos = new Point(0, 0);
int firstIndex = richTextBox1.GetCharIndexFromPosition(pos);
int firstLine = richTextBox1.GetLineFromCharIndex(firstIndex);
pos.X = ClientRectangle.Width;
pos.Y = ClientRectangle.Height;
int lastIndex = richTextBox1.GetCharIndexFromPosition(pos);
int lastLine = richTextBox1.GetLineFromCharIndex(lastIndex);
pos = richTextBox1.GetPositionFromCharIndex(lastIndex);
numberLabel.Text = "";
for (int i = firstLine; i <= lastLine + 1; i++)
{
numberLabel.Text += i + 1 + "\n";
}
}
private void richTextBox1_TextChanged(object sender, EventArgs e)
{
updateNumberLabel();
}
private void richTextBox1_VScroll(object sender, EventArgs e)
{
int d = richTextBox1.GetPositionFromCharIndex(0).Y % (richTextBox1.Font.Height + 1);
numberLabel.Location = new Point(0, d);
updateNumberLabel();
}
private void richTextBox1_Resize(object sender, EventArgs e)
{
richTextBox1_VScroll(null, null);
}
private void richTextBox1_FontChanged(object sender, EventArgs e)
{
updateNumberLabel();
richTextBox1_VScroll(null, null);
}
Zuletzt bearbeitet: