如题
本人希望在完成文本框编辑后,直接在空白处点击一下表示完成编辑然后触发一个事件,本人在这个事件里写处理业务。不知道是用哪个事件LostMouseCapture好像不是。希望知道的朋友给指点一下谢谢。
本人希望在完成文本框编辑后,直接在空白处点击一下表示完成编辑然后触发一个事件,本人在这个事件里写处理业务。不知道是用哪个事件LostMouseCapture好像不是。希望知道的朋友给指点一下谢谢。
解决方案
8
你这TextBox在什么情况下判断为编辑完?
8
LostFocus
8
1.在窗体的MouseDown事件里面写处理业务,你鼠标点击空白处会触发此事件,但是不会TextBox的LostFocus。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。
8
可以使用PreviewMouseDown这个事件,原因是有些控件对鼠标按钮事件具有固有的类处理。鼠标左键按下事件是最有可能在控件中具有类处理的事件。类处理通常会将基础 Mouse 类事件标记为已处理。在将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。通常也不会引发以冒泡方向(朝向 UI 树中的根级)附加到元素的任何其他类或实例处理程序。
8
1.在窗体的MouseDown事件里面写处理业务,你鼠标点击空白处会触发此事件,但是不会TextBox的LostFocus。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。除非没有更好的方案 一般不用这个办法。
可以使用PreviewMouseDown这个事件,原因是有些控件对鼠标按钮事件具有固有的类处理。鼠标左键按下事件是最有可能在控件中具有类处理的事件。类处理通常会将基础 Mouse 类事件标记为已处理。在将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。通常也不会引发以冒泡方向(朝向 UI 树中的根级)附加到元素的任何其他类或实例处理程序。
也就是说TextBox是不会引发以冒泡路由而响应MouseDown 事件的,假如有需要的话可以说使用PreviewMouseDown 或使用 AddHandler本人进行监听