c# -数据视图和上下文菜单条
本文关键字:上下文 菜单 视图 数据 | 更新日期: 2023-09-27 18:03:21
我有一个datagridview与五列和上下文菜单条,其中有项目和子项。当我右键点击最后一列时,我想打开上下文菜单。
我尝试了这个代码,但它是没有子项的打开上下文菜单条。
dataGrid.Columns[dataGrid.Columns.Count].HeaderCell.ContextMenuStrip = contextMenuStrip1;
看起来你想要打开你的ContextMenuStrip如果你的用户右键单击你的DataGridView的最后一列的标题。我会使用DataGridView的MouseDown
事件,并在该事件检查这些条件,如果他们满足调用Show
方法的ContextMenuStrip。
:
private void dataGridView1_MouseDown(object sender, MouseEventArgs e) {
if (e.Button == MouseButtons.Right) {
var ht = dataGridView1.HitTest(e.X, e.Y);
// See if the user right-clicked over the header of the last column.
if (( ht.ColumnIndex == dataGridView1.Columns.Count - 1)
&& (ht.Type == DataGridViewHitTestType.ColumnHeader)) {
// This positions the menu at the mouse's location.
contextMenuStrip1.Show(MousePosition);
}
}
}
如果您的意思是要将上下文菜单附加到上一列的标题,那么您的方向可能是正确的。但最后一列的索引是dataGrid.Columns.Count - 1
。所以,这段代码对我来说很好:
dataGrid.Columns[dataGrid.Columns.Count - 1].HeaderCell.ContextMenuStrip = contextMenuStrip1; ?
子条目已就位