c# - 鼠标右键单击功能在 DataGridView 中不起作用
问题描述
在DataGridView
我编写的(C# WinForm 应用程序)中,如果选择了一行并且您右键单击 a RowHeader
,ContextMenuStrip
则会显示 。这意味着ContextMenuStrip
只有在您单击时才能显示RowHeader
:
private void myDataGridView_RowHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.RowIndex > -1)
{
if (myDataGridView.Rows[e.RowIndex].Selected == true)
{
if (myDataGridView.Rows[e.RowIndex].HeaderCell.ColumnIndex == e.ColumnIndex)
{
DataGridView ctrl = (DataGridView)sender;
ctrl.ContextMenuStrip = this.cmsBrisiPrekinitev;
ctrl.ContextMenuStrip.Show(e.Location);
}
}
}
}
现在,在第一行选择上并右键单击RowHeader
它可以正常工作,但之后ContextMenuStrip
无论我在哪里DataGridView
右键单击都会显示,我无法捕捉任何事件。正确引发了鼠标左键单击事件。
我怎样才能避免这种ContextMenuStrip
显示,这可能是什么原因?
解决方案
推荐阅读
- reactjs - 如何将私有变量从 ReactJS 转换为 TypeScript?
- java - 使用java的嵌套#if宏处理
- scala - 过滤计数火花数据帧
- ios - Swift 5 + Alamofire 5.*:解码顶部具有相同根对象的数据
- sql-server - 在 SQL Server 2014 中创建一个新的“便携式”服务器,并在其他服务器的同一个 SQL Server Management Studio 实例中查看它
- java - 从 API 解析后,我的 json 数据不匹配
- reactjs - 这是什么问题 setState 不起作用?
- ios - 自定义 UITableViewCell - 似乎无法添加子视图
- python - 如何从 1 开始迭代字典项和索引?
- javascript - 使用JS按多个类别过滤?