3

我正在使用 显示一个表单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.

日期范围控制

4

1 回答 1

1

使用 Form.Show() 而不是 Form.ShowDialog() 将解决问题。

于 2011-11-11T06:58:28.047 回答