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





Это сработало для меня:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.ContextMenu = new ContextMenu();
}
Просто установите для свойства ContextMenu значение new (пустое) ContextMenu в событии EditingControlShowing объекта DataGridView.