C#语言实现Winform开发通过DataGridView通过右键菜单实现操作功能
public HdhCmsAllPage()
{
CreateDgViewRightMenu();
}
public void CreateDgViewRightMenu()
{
ContextMenuStrip contextMenu = new ContextMenuStrip();
#region 单级菜单
//// 添加菜单项
ToolStripMenuItem deleteItem = new ToolStripMenuItem("删除行");
ToolStripMenuItem editItem = new ToolStripMenuItem("编辑行");
// 绑定事件
deleteItem.Click +=new EventHandler(DeleteRow_Click);
editItem.Click += new EventHandler(EditRow_Click);
contextMenu.Items.Add(deleteItem);
contextMenu.Items.Add(editItem);
#endregion
#region 多级菜单
//ToolStripMenuItem exportSubMenu = new ToolStripMenuItem("导出为:");
//exportSubMenu.DropDownItems.Add("删除A", null, DeleteRow_Click);
//exportSubMenu.DropDownItems.Add("修改B", null, EditRow_Click);
//contextMenu.Items.Add(exportSubMenu);
#endregion
// 关联到 DataGridView
DataGridView1.ContextMenuStrip = contextMenu;
// 绑定鼠标事件
DataGridView1.MouseDown += DataGridView1_MouseDown;
}
private void DataGridView1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
DataGridView.HitTestInfo hitTest = DataGridView1.HitTest(e.X, e.Y);
if (hitTest.Type == DataGridViewHitTestType.Cell)
{
DataGridView1.ClearSelection();
DataGridView1.Rows[hitTest.RowIndex].Selected = true;
}
else
{
DataGridView1.ContextMenuStrip = null;
}
}
}
private void DeleteRow_Click(object sender, EventArgs e)
{
if (DataGridView1.SelectedRows.Count > 0)
{
DataGridViewRow Dr = DataGridView1.SelectedRows[0];
string Id = Dr.Cells["id"].Value.ToString();
MessageBox.Show("要删除的数据为:"+Id);
}
}
private void EditRow_Click(object sender, EventArgs e)
{
if (DataGridView1.SelectedRows.Count > 0)
{
DataGridViewRow row = DataGridView1.SelectedRows[0];
string id = row.Cells["Id"].Value?.ToString();
string name = row.Cells["Name"].Value?.ToString();
MessageBox.Show($"名称:{name}, 编号:{id}");
}
else
{
MessageBox.Show(DataGridView1.SelectedRows.Count.ToString());
}
}
查看更多关于C#语言实现Winform开发通过DataGridView通过右键菜单实现操作功能的详细内容...