gpt4 book ai didi

c# - 当其他控件获得焦点时隐藏表单

转载 作者:可可西里 更新时间:2023-11-01 10:49:44 32 4
gpt4 key购买 nike

这个问题与this my question有关.现在我在类里面有了表格,当用户单击按钮时,我会显示(或隐藏)表格。没关系。但是当我使用原始表单移动或单击原始表单中的某处时,我想隐藏表单。新形式位于原始形式之后。我正在尝试像 lostfocus 和其他事件,但它没有帮助。所以我想我需要一些技巧来检查我的控制是否有父形式(原始形式)或其他一些黑客的点击。我知道最好的办法是我输入代码,但我有很多行,所以我认为最好的方法是,如果你以一般方式帮助我,然后我尝试应用到我的应用程序。

最佳答案

您可以使用全局鼠标和键盘来完成 hook .事实上,它已包含在 CodePlex 上的文档齐全、结构良好的 .NET API 中。

去那边下载吧。然后,设置一个全局鼠标钩子(Hook):

    _mouseListener = new MouseHookListener(new GlobalHooker());
_mouseListener.MouseMove += HandleGlobalHookMouseMove;
_mouseListener.Start();

这里的关键是,只要鼠标在桌面上的任何位置移动,您都会收到 MouseMove 事件,而不仅仅是在窗口范围内。

 private void HandleAppHookMouseMove(object sender, MouseEventArgs e)
{

if (this.Bounds.Contains(e.Location))
{
HandleEnter();
}
else
{
HandleLeave();
}
}

您还可以为 MouseClick 设置一个。两者的结合将使您能够确定鼠标在您的原始表单上移动的任何时间,或者鼠标在其上方时被单击的时间。与 LostFocus 和您尝试的其他事件不同,焦点是无关紧要的。

关于c# - 当其他控件获得焦点时隐藏表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9276784/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com