private void UpdateLineNumbers() { Point pt = new Point(0, 0); int firstIndex = MainTextBox.GetCharIndexFromPosition(pt); int firstLine = MainTextBox.GetLineFromCharIndex(firstIndex); pt.X = ClientRectangle.Width; pt.Y = ClientRectangle.Height; int lastIndex = MainTextBox.GetCharIndexFromPosition(pt); int lastLine = MainTextBox.GetLineFromCharIndex(lastIndex); LineNumbers.SelectionAlignment = HorizontalAlignment.Center; LineNumbers.Text = ""; LineNumbers.Width = GetWidth(); if (MainTextBox.Lines.Length > 1) { for (int i = firstLine; i <= lastLine + 1; i++) { int lineNum = (i + 1); if (lineNum <= Lines.Length) { LineNumbers.Text += (i + 1) + "\n"; } } } else { LineNumbers.Text += 1 + "\n"; } }