实现点击Form区域内除ListBox以外的其他地方,实现ListBox的隐藏,包括UserControl范围内,也包括UserControl之外Form之内

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实现点击Form区域内除ListBox以外的其他地方,实现ListBox的隐藏,包括UserControl范围内,也包括UserControl之外Form之内相关的知识,希望对你有一定的参考价值。

const int WM_PARENTNOTIFY = 0x210;
const int WM_LBUTTONDOWN = 0x201;

protected override void WndProc(ref Message m)
{
if (m.Msg == WM_LBUTTONDOWN || (m.Msg == WM_PARENTNOTIFY &&
(int)m.WParam == WM_LBUTTONDOWN))
{
if (tab.SelectedForm is Form)
{
Form form = tab.SelectedForm as Form;
var control = form.Controls.Find("combobox", true)[0];
if (control != null)
{
ComboboxEx combobox = control as ComboboxEx;
if (!combobox.ClientRectangle.Contains(combobox.PointToClient(Cursor.Position)))
{
combobox.HiddenListBox();
}
}
}
}

base.WndProc(ref m);
}

以上是关于实现点击Form区域内除ListBox以外的其他地方,实现ListBox的隐藏,包括UserControl范围内,也包括UserControl之外Form之内的主要内容,如果未能解决你的问题,请参考以下文章

Android 实现点击输入框以外的区域隐藏软键盘

vue 点击 除某元素以外的区域关闭弹窗

点击div区域以外部分,div区域隐藏

React处理点击组件以外区域事件

vue点击菜单以外区域,隐藏菜单操作

Android实战开发篇 点击EditText以外区域,隐藏键盘,失去焦点