如何创建在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));
    }

如何创建在dataGridView框中删除行的左键

你需要添加一个新的事件到你的上下文菜单,"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;
   }
}