如何创建在dataGridView框中删除行的左键
本文关键字:删除行 dataGridView 何创建 创建 | 更新日期: 2023-09-27 18:01:31
这是我正在使用的数据网格框。
我想创建一个左键按钮来删除选中的行。到目前为止我有这个:
private void dataGridView1_MouseClick(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
ContextMenu m = new ContextMenu();
m.MenuItems.Add(new MenuItem("Delete Current Row"));
m.MenuItems.Add(new MenuItem("Duplicate Row"));
int currentMouseOverRow = dataGridView1.HitTest(e.X, e.Y).RowIndex;
if (currentMouseOverRow >= 0)
{
m.MenuItems.Add(new MenuItem(string.Format("Delete this row", currentMouseOverRow.ToString())));
foreach (DataGridViewRow item in this.dataGridView1.SelectedRows)
{
dataGridView1.Rows.RemoveAt(item.Index);
}
}
m.Show(dataGridView1, new Point(e.X, e.Y));
}
你需要添加一个新的事件到你的上下文菜单,"ItemClicked"。它有项目,但没有事件。
我的想法:使用设计器从"工具箱"中添加一个"ContexMenUStrip"。它出现在设计者的底部。给它起个名字,比如"DataGridContexMenu"。然后选择你的数据网格,并设置它的"ContexMenuStrip"来匹配你新制作的"DataGridContexMenu"。
每次右键单击数据网格时,清除"DataGridContexMenu"中的旧项目。添加所需的项,就像您在代码中所做的那样:
DataGridContexMenu.Items.Clear();
你可以使用"Tag"-property来标识菜单上的每个项目:
DataGridContexMenu.Items.Add(new ToolStripMenuItem()
{
Name = "Elements_Copy_ToolStripMenuItem",
Tag = "Copy",
Text = "Copy columns",
ToolTipText = "Click to copy"
});
然后在设计器的"DataGridContexMenu"中添加一个新的"ItemClicked"事件:
private void DataContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
switch (e.ClickedItem.Tag.ToString())
{
case "Copy":
// Your operations code here..
break;
}
}