当前位置: 移动技术网 > IT编程>开发语言>c# > Datagridview使用技巧(9)Datagridview的右键菜单

Datagridview使用技巧(9)Datagridview的右键菜单

2019年07月18日  | 移动技术网IT编程  | 我要评论
datagridview,datagridviewcolumn,datagridviewrow,datagridviewcell有contextmenustrip属性。可以

datagridview,datagridviewcolumn,datagridviewrow,datagridviewcell有contextmenustrip属性。可以通过设置contextmenustrip对象来控制datagridview的右键菜单的显示。

datagridviewcolumn的contextmenustrip属性设定除了列头以外的单元格的右键菜单。

datagridviewrow的contextmenustrip属性设定除了行头以外的单元格的右键菜单。

datagridviewcell的contextmenustrip属性设定指定单元格的右键菜单。

对于单元格上的右键菜单的设定,优先顺序是:cell>row>column>datagridview

利用cellcontextmenustripneeded、rowcontextmenustripneeded事件可以设定单元格的右键菜单,尤其是需要右键菜单根据单元格值的变化而变化的时候。比起使用循环遍历,使用该事件来设定右键菜单的效率更高。

说明:cellcontextmenustripneeded事件处理方法的参数中,e.rowindex=-1表示列头,e.columnindex=-1表示行头。rowcontextmenustripneeded则不存在e.columnindex=-1的情况。

示例一:

//设置datagridview的右键菜单
this.dgv_users.contextmenustrip = cmsdgv;
//设置列的右键菜单
this.dgv_users.columns[1].contextmenustrip = cmscolumn;
//设置列头的右键菜单
this.dgv_users.columns[1].headercell.contextmenustrip = cmsheadercell;
//设置行的右键菜单
this.dgv_users.rows[2].contextmenustrip = cmsrow;
//设置单元格的右键菜单
this.dgv_users[1, 2].contextmenustrip = cmscell;

示例二:

private void dgv_users_cellcontextmenustripneeded(object sender, datagridviewcellcontextmenustripneededeventargs e)
{
 datagridview dgv = sender as datagridview;
 if (e.rowindex < 0)
 {
   //设置列头右键
   e.contextmenustrip = cmsheadercell;
 }
 else if (e.columnindex < 0)
 { 
   //设置行头右键菜单
   e.contextmenustrip = cmsrow;
  }
  else if (dgv[e.columnindex, e.rowindex].value.tostring().equals("男"))
  {
   e.contextmenustrip = cmscell;
  }
  else
  {
   e.contextmenustrip = cmsdgv;
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持移动技术网。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网