我是使用Infragistics
的新手。我正在尝试将上下文菜单添加到UltraWinGrid
中的特定行/列,这是我无法做到的。看起来像向网格添加上下文菜单很简单,但将其添加到特定的行/列并不是直截了当的。你能告诉我怎么做吗?
答案 0 :(得分:3)
您可以向表单或控件中添加一个上下文菜单,只有当他们在需要该菜单的行/单元格上的网格中单击时,才会显示该网格。
这是一个例子,虽然它并不漂亮。
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();
}
}
}
答案 1 :(得分:0)
MouseDown不起作用。请使用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();
}
}
}
}
}