2008-11-05 12 views
2

Кто-нибудь знает, как я могу отключить системное контекстное меню, когда пользователь щелкает правой кнопкой мыши в DataGridViewTextBoxCell? Я попытался переопределить WndProc на уровне DataGridView (так как WndProc не переопределяет на уровне Cell), но ничего не работает. Любая помощь будет принята с благодарностью.Отключить систему DataGridView ContextMenu

Следующее - это то, что я использую для достижения этого в обычном 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); 
     } 
    } 
} 

ответ

7

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

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

Просто установите свойство ContextMenu на новый (пустой) ContextMenu в случае EditingControlShowing в DataGridView.

+0

Ты мой герой. – sbeskur 2008-11-06 00:00:26

Смежные вопросы