我要完成的效果是,右键列头弹出字段菜单项,点击选中则显示该字段,不选中则隐藏该字段
1,拖一个contentMenuStrip控件到页面
把该控件的属性Tag 的值写成DataGridView的字段名
2,在CellContextMenuStripNeeded 事件中双击 (让右击列头出现菜单)
代码如下:
DataGridView dgv = (DataGridView)sender; if (e.RowIndex < 0) { // 列头的ContextMenuStrip设定 e.ContextMenuStrip = this.cmsMenu; }
3,contentMenuStrip 单击事件调用
// 显示隐藏字段 ToolStripMenuItem tsm = sender as ToolStripMenuItem; if (tsm.Checked) { dgvConsu.Columns[tsm.Tag.ToString()].Visible = false; tsm.Checked = false; } else { dgvConsu.Columns[tsm.Tag.ToString()].Visible = true; tsm.Checked = true; }
整个功能就算完成
完成效果如下图