开发者

Adding Row Specific context menu to an UltraWinGrid

I'm a newbie using Infragistics. I'm trying to add context menu to a specific row/column in UltraWinGrid, which I'm not able to.开发者_StackOverflow中文版 Looks like adding context menu to the grid is simple but adding it to a specific row/column is not straight forward. Can you please tell me how to do this?


You could add a context menu to the form or control your grid will reside in and only display it in when they right click in the grid over the rows/cells that need that menu.

Here's an example, though it's not pretty.

private void UltraGrid_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
{
  if (e.Button == MouseButtons.Right) 
  {
    ContextMenu.Hide();

    Point point = new System.Drawing.Point(e.X, e.Y);
    UIElement uiElement = ((UltraGridBase) sender).DisplayLayout.UIElement.ElementFromPoint(point);
    UltraGridCell cell = (UltraGridCell) uiElement.GetContext(typeof (UltraGridCell));  

    if (cell != null && UseThisContextMenu(cell))
    {
      ContextMenu.Show();
    }
  }
}


MouseDown does not work. Please use MouseUp.

private void UltraGrid1_MouseUp(object sender, MouseEventArgs e)
    {
        if (e.Button == MouseButtons.Right)
        {

            Point point = new System.Drawing.Point(e.X, e.Y);
            UIElement uiElement = ((UltraGridBase)sender).DisplayLayout.UIElement.ElementFromPoint(point);
            UltraGridCell cell = (UltraGridCell)uiElement.GetContext(typeof(UltraGridCell));

            if (cell.Band.Index == 0)
            {
                if (cell.Column.Key.Equals("ColumnToShow"))
                {
                    contextMenuStrip.Show();
                }
                else
                {
                    contextMenuStrip.Hide();
                }

            }
        }
    }
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜