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 がサウンドを再生するという小さな問題が 1 つありDINGます。

UPDATE

からのアドバイスを使用して、このフォームを思い通りに機能させることができましたが、を使用する場合、Hassan Mujtabaこれをミュートする方法はまだわかりません。DINGForm.ShowDialog

日付範囲コントロール

4

1 に答える 1

1

Form.ShowDialog() の代わりに Form.Show() を使用すると、問題が解決します。

于 2011-11-11T06:58:28.047 に答える