C#checklistbox选中条目点击鼠标右键弹出删除菜单实现删除
时间: 2024-01-28 21:05:33 浏览: 75
要实现该功能,您需要在 `CheckListBox` 控件的 `MouseDown` 事件中添加以下代码:
```csharp
private void checklistbox1_MouseDown(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
int index = checklistbox1.IndexFromPoint(e.Location);
if (index != ListBox.NoMatches)
{
checklistbox1.SelectedIndex = index;
ContextMenu menu = new ContextMenu();
menu.MenuItems.Add("删除", new EventHandler((o, ea) =>
{
checklistbox1.Items.RemoveAt(checklistbox1.SelectedIndex);
}));
checklistbox1.ContextMenu = menu;
}
}
}
```
这段代码会检查鼠标点击的按钮是否为右键,然后获取鼠标点击的位置所在的列表项的索引,并将该项设为选中状态。接着,创建一个 `ContextMenu` 对象,并添加一个名为“删除”的菜单项,该菜单项的 `Click` 事件会将选中的项从列表中删除。最后,将该菜单赋给 `CheckListBox` 控件的 `ContextMenu` 属性,以便在鼠标右键点击时弹出该菜单。
请注意,这段代码假定您的 `CheckListBox` 控件名为 `checklistbox1`。
阅读全文