当我右键单击 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/