3

ユーザーが DataGridViewTextBoxCell を右クリックしたときにシステム コンテキスト メニューを無効にする方法を知っている人はいますか? DataGridView レベルで WndProc をオーバーライドしようとしましたが (Cell レベルでオーバーライドする WndProc がないため)、何も機能していないようです。どんな助けでも大歓迎です。

以下は、通常の TextBox でこれを実現するために使用するものですが、DataGridViewCell についても同じように作業する必要がありますか?

public  class NoContextTextBox : TextBox {
    private static readonly int WM_CONTEXTMENU = 123;
    protected override void WndProc(ref Message m) {
        if (m.Msg != WM_CONTEXTMENU) {
            base.WndProc(ref m);
        }
    }
}
4

1 に答える 1

8

これは私のために働いた:

   private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
    {
        e.Control.ContextMenu = new ContextMenu();
    }

DataGridView の EditingControlShowing イベントで、ContextMenu プロパティを新しい (空の) ContextMenu に設定するだけです。

于 2008-11-05T23:56:58.420 に答える