Richtextbox Zeilen zählen
Entwickle ich ein text-editor in C#, und ich versuche, um eine Linie zu zählen.
private void updateNumberLabel()
{
Point pos = new Point(0, 0);
int firstIndex = Document.GetCharIndexFromPosition(pos);
int firstLine = Document.GetLineFromCharIndex(firstIndex);
pos.X = ClientRectangle.Width;
pos.Y = ClientRectangle.Height;
int lastIndex = Document.GetCharIndexFromPosition(pos);
int lastLine = Document.GetLineFromCharIndex(lastIndex);
int actualLine = Document.GetLineFromCharIndex(actualPos);
pos = Document.GetPositionFromCharIndex(lastIndex);
if (lastLine != actualLine)
{
numberLabel.Text = "";
for (int i = firstLine; i <= lastLine + 1; i++)
{
numberLabel.Text += i + 1 + "\n";
}
}
}
Es funktioniert gut und fügt die Anzahl der Zeilen, während Sie Sie schreiben, aber wenn Sie löschen, wird es nur aktualisieren, wenn Sie Sie löschen oder fügen Sie eine weitere Zeile.
Ich will, machen es sofort. Wenn Sie löschen ein, die Zählung wird verringert werden, sofort.
- Was ist falsch mit
richTextBox.Lines.Count()
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht ist das zu einfach, aber was ist mit:
Stellen Sie sicher, Sie weisen Sie auf die
TextChanged
Veranstaltung.Wenn dieses nicht ist, was Sie benötigen, fügen Sie bitte etwas mehr Informationen, was Sie versuchen zu erreichen.
numberLabel.Text = Document.Lines.Count().ToString();
Ich bin wirklich spät dran, aber Lines ist ein array von string. Nur die Länge.
Los799
Sorry für die Beantwortung ein "bisschen" spät, sah ich diese Frage gerade jetzt.
Aber wenn das problem noch steht, ist hier eine einfache Weise, zu zählen, Linien, nutzen Sie einfach eine foreach-Schleife:
Können Sie auch verwenden Sie foreach zu count Zeichen als gut, aber mit foreach können Sie wählen Zeichen, dass Sie nicht wollen, gezählt werden die Anzahl der Zeichen. Zum Beispiel:
Hoffe das hilft dir und allen anderen, die das hier Lesen, auch wenn es ein bisschen spät die Antwort. 🙂
Ich habe festgestellt, ein open-source-und der angewandten es zu diesem problem.
Habe ich bestätigt, dass es gut funktioniert und haben es umgesetzt.
RichTextBox-Spalten und Zeilen
Einfachen Code(
Der link hat eine demo-Quelle.):
Anstatt zu versuchen, um den Kampf mit den Standard-rich-text-box, warum nicht Sie versuchen, Ihre eigenen Steuern, so haben Sie die volle Kontrolle über den text formatieren?
Nach allem, wenn Sie entwickeln Ihre eigenen text-editor, es würde Sinn machen, wenn der text gespeichert und verwaltet in einer Weise, die Sinn macht für Sie, den Entwickler, anstatt zu versuchen, einen Kampf mit einem format, entworfen für einen etwas anderen Zweck.