C# DataGridView,右键单击RowHeader时显示右键菜单怎么做?
private
void
dataGridView1_CellClick(
object
sender, DataGridViewCellEventArgs e)
{
if
( e.ColumnIndex==-1)
{
MessageBox.Show(
"这里是行头"
);
}
}
private
void
dataGridView1_RowHeaderMouseClick(
object
sender, DataGridViewCellMouseEventArgs e)
{
if
(e.Button==MouseButtons.Right)
{
//加入显示右键弹出菜单
}
}
而且,CellClick 是不响应右键的,所以,只有在 CellMouseClick 事件中才能响应右键.(RowHeaderMouseClick 也有响应,但是不知道为什么,我的 VS2005 没有反应,所以不推荐使用)
private void dgv_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
// 判断是否右键点击
if (e.Button == MouseButtons.Right)
{
// 得到点击所在的行和列信息。相关函数查 MSDN
DataGridView.HitTestInfo hitinfo = dgv_verify.HitTest(e.X, e.Y);
// 如果 RowIndex < 0,就是标题行了。
if (hitinfo.RowIndex < 0)
{
// 如果你只要指定的列显示菜单,则加入对 hitinfo.ColumnIndex 的判断
contextMenuStrip1.Show(MousePosition.X, MousePosition.Y);
}
}
}
===============================================================
以上代码经过测试,在 VS2005 和 VS2008 下运行正常。
有什么问题,再问我吧。
posted on 2015-03-27 11:43 gisoracle 阅读(1452) 评论(0) 编辑 收藏 举报