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