Here is我正在使用的数据网格框。
我想创建一个删除所选行的左键单击按钮。 到目前为止我有这个:
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));
}
答案 0 :(得分:0)
您需要向ContexMenu添加新活动," ItemClicked"。它有物品,但没有事件。
我的想法:使用Designer添加一个" ContexMenUStrip"来自" ToolBox"。它似乎是设计师的底层。给它一个名字,比如" DataGridContexMenu"。然后选择您的数据网格,并设置它" ContexMenuStrip"匹配你新制作的" DataGridContexMenu"。
每次右键单击数据网格时,清除" DataGridContexMenu"中的旧项目。添加想要的项目,就像您在代码中所做的那样:
DataGridContexMenu.Items.Clear();
您可以使用"标记" -property来识别菜单上的每个项目:
DataGridContexMenu.Items.Add(new ToolStripMenuItem()
{
Name = "Elements_Copy_ToolStripMenuItem",
Tag = "Copy",
Text = "Copy columns",
ToolTipText = "Click to copy"
});
然后添加一个新的" ItemClicked"事件发生在这个" DataGridContexMenu"在设计师:
private void DataContextMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
switch (e.ClickedItem.Tag.ToString())
{
case "Copy":
// Your operations code here..
break;
}
}