vb.net - 如何通过右键单击获取 super GridView 的列索引

标签 vb.net infragistics ultrawingrid

当我右键单击 super GridView 或可能是 GridView 时。 我想为不同的列显示不同的上下文菜单条。 但是当我右键单击时,我得到了我选择的列的索引,而不是我右键单击的列的索引。 我该怎么得到它.. 代码如下:

 Private Sub DataGridView1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles DataGridView1.MouseDown
       If e.Button() = Windows.Forms.MouseButtons.Right Then
            MessageBox.Show(DataGridView1.SelectedCells(0).ColumnIndex.ToString())
        End If
    End Sub

最佳答案

将 UltraColumn 置于光标下的最佳方法是利用 UltraGrid 类的 MouseUp 事件。 这是 C# 示例,但我相信您会明白我的想法:

private void Grid_MouseUp(object sender, MouseEventArgs e)
{
    UltraGrid Grid = sender as UltraGrid;
    if (Grid.DisplayLayout == null)
        return;
    UIElement ue = Grid.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y));
    if (ue == null)
        return;

    UIElement mouseupItem = ue;
    UltraGridColumn mouseupColumn = null;
    UltraGridRow mouseupRow = null;
    UltraGridBand mouseupBand = null;
    ColumnHeader mouseupColumnHead = null;

    mouseupColumn = (UltraGridColumn)ue.GetContext(typeof(UltraGridColumn), true);
    mouseupRow = (UltraGridRow)ue.GetContext(typeof(UltraGridRow), true);
    mouseupBand = (UltraGridBand)ue.GetContext(typeof(UltraGridBand), true);
    mouseupColumnHead = (ColumnHeader)ue.GetContext(typeof(ColumnHeader), true);

    if (mouseupColumnHead != null)
        mouseupColumn = mouseupColumnHead.Column;

    if (e.Button == MouseButtons.Right)
    {
        ShowPopupMenu( mouseupColumn );
        return;
    }
}

关于vb.net - 如何通过右键单击获取 super GridView 的列索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8306121/

相关文章:

vb.net - 是否可以将 TextFieldParser 与 Byte 一起使用?

vb.net - 如何在 VB.NET 中创建通用属性?

wpf - WPF的Microsoft功能区与Infragistics功能区

javascript - Infragistics - 在代码中显示/隐藏列(不使用默认列选择器对话框)

wpf - 根据 View 中的 Action 触发 View 模型中的命令

asp.net - 使用 Visual Studio 2010 中的工具箱从 MySQL 服务器提取数据时,不断出现错误

c# - 如何在 datagridview 列标题中显示图像?

c# - UltraWinGrid:如何刷新显示的数据

c# - 从组合表中读取主表和子表

c# - Infragistics UltraGrid - 如何在滚动到达底部时添加行?