复刻记事本:Visual Studio WinForms中TextBox点击新位置触发方法咨询
解决光标点击位置更新状态栏的问题
你需要用TextBox的SelectionChanged事件来替代Click事件,这个事件会在光标位置发生任何变化时触发(包括鼠标点击新位置、用键盘箭头移动光标、选中文本等场景),完全覆盖你需要更新状态栏的需求。
具体操作步骤:
- 打开WinForms设计器,选中你的
TextBody_NotepadNoteEditor文本框 - 在属性窗口中切换到「事件」面板(点击闪电图标)
- 找到
SelectionChanged事件,双击它自动生成事件处理方法 - 在生成的方法里调用你的
UpdateRowColStatusBar()函数
生成的代码示例:
private void TextBody_NotepadNoteEditor_SelectionChanged(object sender, EventArgs e) { UpdateRowColStatusBar(); }
为什么之前的Click事件无效?因为当文本框已经获得焦点时,再次点击内部位置不会触发Click事件,而SelectionChanged会捕捉所有光标位置变更的场景,更适配记事本状态栏的更新需求。
另外,你已经在TextChanged事件里调用了更新方法,现在加上SelectionChanged事件后,就能覆盖文本修改、光标移动这两类需要更新状态栏的场景了。
内容的提问来源于stack exchange,提问作者Om Khadka
相关产品推荐
相关产品推荐

