Как отключить звук «ДИНГ», когда пользователь нажимает на внешнюю форму? - PullRequest
2 голосов
/ 11 ноября 2011

Я показываю форму, используя 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);
    }

Этот код работает, как я и ожидал, но есть одна незначительная проблема: воспроизведение Windows DING звучит каждый раз, когда пользователь нажимает за пределами области формы, я хочу отключить этот DING при обработке этого кода.

UPDATE

Мне удалось заставить эту Форму работать так, как я хочу, используя советы Hassan Mujtaba, но я все еще задаюсь вопросом, как отключить эту DING, если я использую Form.ShowDialog.

DateRange Control

1 Ответ

2 голосов
/ 11 ноября 2011

Использование Form.Show () вместо Form.ShowDialog () решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...