Отключить DataGridView System ContextMenu
Кто-нибудь знает, как я могу отключить системное контекстное меню, когда пользователь щелкает правой кнопкой мыши в DataGridViewTextBoxCell? Я попытался переопределить WndProc на уровне DataGridView (так как нет WndProc для переопределения на уровне Cell), но, похоже, ничего не работает. Любая помощь будет принята с благодарностью.
Вот что я использую для достижения этой цели в обычном 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 ответ
Решение
Это сработало для меня:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
e.Control.ContextMenu = new ContextMenu();
}
Просто установите для свойства ContextMenu новое (пустое) ContextMenu в событии EditingControlShowing объекта DataGridView.