WPF开发经验-WPF的TextBox控件的MouseDown事件不响应的解决方法



一 问题的发现

最近项目有个需求,大概是,当点击某个TextBox时,先执行一些业务上的逻辑处理。
于是按以往思维,将TextBox的MouseDown事件关联事件处理方法,将业务处理写在方法里。
调试发现,点击TextBox时,事件处理方法未执行。


二 问题的原因

通过查阅微软官方文档了解到问题原因。

附上文档链接:https://docs.microsoft.com/en-us/previous-versions/dotnet/netframework-3.5/ms750580(v=vs.90)
TextBox内置了处理MouseDown事件的方法,其内部的方法处理完后将事件标记为Handled。
因此,从TextBox中侦听MouseDown事件的自定义事件处理程序永远不会被调用。


三 如何解决

3.1 侦听PreviewMouseDown事件

WPF提供了相应的Preview事件。

3.2 使用AddHandler添加自定义的路由事件。

textBox.AddHandler(TextBox.MouseDownEvent, new MouseButtonEventHandler(textBox_MouseDown), true);


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM