我在_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感兴趣。