Отключить DataGridView System ContextMenu - PullRequest
2 голосов
/ 06 ноября 2008

Кто-нибудь знает, как я могу отключить системное контекстное меню, когда пользователь щелкает правой кнопкой мыши в DataGridViewTextBoxCell? Я пытался переопределить WndProc на уровне DataGridView (так как нет 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);
        }
    }
}

1 Ответ

7 голосов
/ 06 ноября 2008

Это сработало для меня:

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

Просто установите для свойства ContextMenu новое (пустое) ContextMenu в событии EditingControlShowing объекта DataGridView.

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