我在_TextChanged中使用以下代码:

string[] currentLines = new string[text.Lines.Length];
for (int i = 0; i < currentLines.Length; i++) {
       currentLines[i] = text.Lines[i] + "...";
}

text.Lines = currentLines;


调用事件时崩溃。我不知道如何解决此问题,当我这样做时会发生崩溃:

text.Lines = currentLines;


为什么这样以及如何解决?提前致谢。

最佳答案

设置行可能会再次触发_TextChanged事件。您遇到什么错误?如果看到StackOverflowException,则是原因。

您可以添加它来解决问题,或者采用丹尼尔在回答中提到的布尔标志方法。

text.TextChanged -= textBox1_TextChanged;

text.Lines = currentLines;

text.TextChanged += textBox1_TextChanged;


同样,您可能对此question discussing the difference between programmatic changes and user driven changes感兴趣。

08-06 14:28