我要完成的效果是,右键列头弹出字段菜单项,点击选中则显示该字段,不选中则隐藏该字段
1,拖一个contentMenuStrip控件到页面
把该控件的属性Tag 的值写成DataGridView的字段名
2,在CellContextMenuStripNeeded 事件中双击 (让右击列头出现菜单)
代码如下:
DataGridView dgv = (DataGridView)sender;
if (e.RowIndex < 0)
{
// 列头的ContextMenuStrip设定
e.ContextMenuStrip = this.cmsMenu;
}
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;
}
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;
}
整个功能就算完成
完成效果如下图