TextBox编辑完后本人想让鼠标在空白处点击一下是触发的那个事件呢

.Net技术 码拜 8年前 (2016-03-07) 1407次浏览
如题
本人希望在完成文本框编辑后,直接在空白处点击一下表示完成编辑然后触发一个事件,本人在这个事件里写处理业务。不知道是用哪个事件LostMouseCapture好像不是。希望知道的朋友给指点一下谢谢。
解决方案

8

你这TextBox在什么情况下判断为编辑完?

8

LostFocus

8

1.在窗体的MouseDown事件里面写处理业务,你鼠标点击空白处会触发此事件,但是不会TextBox的LostFocus。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。

8

引用 7 楼 zmidl 的回复:
Quote: 引用 4 楼 BitCoffee 的回复:

1.在窗体的MouseDown事件里面写处理业务,你鼠标点击空白处会触发此事件,但是不会TextBox的LostFocus。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。

除非没有更好的方案 一般不用这个办法。

可以使用PreviewMouseDown这个事件,原因是有些控件对鼠标按钮事件具有固有的类处理。鼠标左键按下事件是最有可能在控件中具有类处理的事件。类处理通常会将基础 Mouse 类事件标记为已处理。在将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。通常也不会引发以冒泡方向(朝向 UI 树中的根级)附加到元素的任何其他类或实例处理程序。

8

引用 8 楼 Libby1984 的回复:
Quote: 引用 7 楼 zmidl 的回复:
Quote: 引用 4 楼 BitCoffee 的回复:

1.在窗体的MouseDown事件里面写处理业务,你鼠标点击空白处会触发此事件,但是不会TextBox的LostFocus。
2.TextBox的LostFocus事件里面同样也要写处理业务,当你的鼠标点击的是另一个TextBox的话,不会触发窗体的MouseDown事件,但是会触发TextBox的LostFocus事件。
所以,你需要在上述的两个事件里面去处理业务。

除非没有更好的方案 一般不用这个办法。

可以使用PreviewMouseDown这个事件,原因是有些控件对鼠标按钮事件具有固有的类处理。鼠标左键按下事件是最有可能在控件中具有类处理的事件。类处理通常会将基础 Mouse 类事件标记为已处理。在将事件标记为已处理后,通常不会引发附加到该元素的其他实例处理程序。通常也不会引发以冒泡方向(朝向 UI 树中的根级)附加到元素的任何其他类或实例处理程序。

也就是说TextBox是不会引发以冒泡路由而响应MouseDown 事件的,假如有需要的话可以说使用PreviewMouseDown 或使用 AddHandler本人进行监听


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明TextBox编辑完后本人想让鼠标在空白处点击一下是触发的那个事件呢
喜欢 (0)
[1034331897@qq.com]
分享 (0)