我正在使用 显示一个表单Form.ShowDialog()
,在此表单中我已覆盖void WndProc(ref Message m)
,因为我想在用户单击表单区域外时关闭此表单。
private const int WM_NCACTIVATE = 0x0086;
protected override void WndProc(ref Message m)
{
switch (m.Msg)
{
case WM_NCACTIVATE:
if (_canClose) // when user click outside form, close form
this.Close(this, EventArgs.Empty);
break;
default:
break;
}
base.WndProc(ref m);
}
此代码按我的预期工作,但有一个小问题,DING
每次用户在表单区域外单击时,Windows 都会播放声音,我想DING
在处理此代码时“静音”。
UPDATE
我设法使这个表单按照我的意愿工作,使用来自 的建议Hassan Mujtaba
,但我仍然想知道DING
如果我使用Form.ShowDialog
.