当我点击其他地方时,我希望我的文本框关闭,我该怎么做?
我见过Control.Capture
似乎抓住了鼠标事件,但它不起作用。
我还尝试了Control.Leave
和Control.LostFocus
个事件,但只有在我按Tab键或点击其他文字字段时才触发它们。
关闭我的意思是从它的父母那里删除它,但重要的是我认为这是事件
答案 0 :(得分:1)
处理WM_CAPTURECHANGED消息并检查文本框是否包含焦点但未捕获,如果是,则将其隐藏。
protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
const int WM_CAPTURECHANGED = 0x0215;
if (m.Msg == WM_CAPTURECHANGED)
{
if (!textBox1.Capture && textBox1.Focused && textBox1.Visible)
{
textBox1.Visible = false;
}
}
}