2015-03-25 5 views
0

Я добавил контекстное меню правой кнопкой мыши на содержимое моей сетки. Это всплывающее окно также показывает, когда я нажимаю правой кнопкой мыши на заголовок сетки, однако я хочу сохранить всплывающее меню заголовка столбца по умолчанию.Как сохранить всплывающее меню заголовка столбца по умолчанию на devexpress?

Мой правильный код меню, как это:

protected override void RightClickMenu() 
{ 
    this.rightClickContextMenu = new ContextMenu(); 

    this.rightClickContextMenu.MenuItems.Add("MY CLASSES", new System.EventHandler(myclasses_Click)); 
    this.rightClickContextMenu.MenuItems.Add("MY BOOK LISTS", new System.EventHandler(booklists_Click)); 

    this.gridView.PopupMenuShowing += gridView_PopupMenuShowing; 
} 

Кто-нибудь есть какие-либо идеи, что я должен добавить в моем коде?

ответ

0

Вы можете использовать GridView.CalcHitInfo метод, чтобы определить, где правая кнопка мыши была нажата. И если бы он был нажат на заголовок столбца, вы должны установить свой GridControl.ContextMenu свойство null.
Вот пример:

protected override void RightClickMenu() 
{ 
    this.rightClickContextMenu = new ContextMenu(); 

    this.rightClickContextMenu.MenuItems.Add("MY CLASSES", new System.EventHandler(myclasses_Click)); 
    this.rightClickContextMenu.MenuItems.Add("MY BOOK LISTS", new System.EventHandler(booklists_Click)); 

    this.gridView.PopupMenuShowing += gridView_PopupMenuShowing; 
    this.gridView.MouseDown += gridView_MouseDown; 
} 

private void gridView_MouseDown(object sender, MouseEventArgs e) 
{ 
    if (e.Button != MouseButtons.Right) 
     return; 

    var hitInfo = this.gridView.CalcHitInfo(e.Location); 

    if (!hitInfo.InColumn) 
     this.gridView.GridControl.ContextMenu = this.rightClickContextMenu; 
    else 
     this.gridView.GridControl.ContextMenu = null; 
} 
0

Трудно предложить что-то, не понимая всех аспектов этой ситуации. Вы должны report this issue непосредственно в группу поддержки DevExpress и предоставить образец проекта, в котором проблема воспроизводится. Я считаю, что их ребята могут диагностировать ошибку, используя ваш образец, и исправить ее или указать вам в правильном направлении с использованием ContextMenu на GridControl.

Соответствующая поддержка-статья: Both ContextMenu and grid menu are shown simultaneously

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