我有一个多行文本框,我想在文本框下方的标签中显示用户的当前行号和列号。看起来我可以使用SelectionStart属性,GetLineFromCharIndex方法和GetFirstCharIndexOfCurrentLine方法获取行号和列号。但是,每次在文本框中选择更改时,我都看不到任何被触发的事件。
我能看到的最好的方法是监控KeyPress和MouseDown事件,并在每个事件后检查SelectionStart属性。我想我可以使用计时器来观察变化,但这感觉很奇怪。
我错过了什么吗?
答案 0 :(得分:3)
为了保持健壮,你可能需要添加一个计时器,并定期检查它; from here,控件不会发布合适的win32消息(EN_SELCHANGE)作为事件执行此操作。
答案 1 :(得分:0)
要获取SelectionChanged事件,您还可以将TextBox转换为RichTextBox。 RichTextBoxes的行为与TextBoxes略有不同,所以这可能不是一个理想的解决方案,但至少有一个SelectionChanged event。