gpt4 book ai didi

c# - 上下文菜单项的事件处理程序

转载 作者:太空宇宙 更新时间:2023-11-03 11:53:14 26 4
gpt4 key购买 nike

我在 C# 代码中的 treeView 的各个节点上添加了右键单击功能。当用户右键单击树上的这些节点时,应该会弹出“添加”、“删除”、“重命名”等选项。现在根据被点击的节点,我正在使用以下状态填充菜单:

contextMenuStrip1.Items.Add("添加");

然后,如果右键单击不同的节点,我将使用以下命令:

contextMenuStrip1.Items.Add("重命名");

有一些节点必须显示两个项目:contextMenuStrip1.Items.Add("Add"); contextMenuStrip1.Items.Add("删除");

当添加和删除都存在于上下文菜单条中时,我如何为添加和删除编写单独的事件处理程序。我无法区分点击的是“添加”还是“删除”。目前,我在 ContextMenuStrip 上使用“ItemClicked”事件在“添加”的事件处理程序中执行我的代码,但单击“删除”时也会引发此事件。任何帮助将不胜感激。

谢谢,维伦

最佳答案

ToolStripItem.Add(string text) 方法返回添加的 ToolStripItem。您应该以这种方式引用它们,当 ItemClicked 事件被触发时,您可以确定点击了哪一个。

例如:

using System;
using System.Windows.Forms;
namespace WindowsFormsApplication6
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
using (Form form = new Form())
{
form.ContextMenuStrip = new ContextMenuStrip();
ToolStripItem addMenuItem = form.ContextMenuStrip.Items.Add("Add");
ToolStripItem deleteMenuItem = form.ContextMenuStrip.Items.Add("Delete");

form.ContextMenuStrip.ItemClicked += (sender, e) =>
{
if (e.ClickedItem == addMenuItem)
{
MessageBox.Show("Add Menu Item Clicked.");
}
if (e.ClickedItem == deleteMenuItem)
{
MessageBox.Show("Delete Menu Item Clicked.");
}
};
Application.Run(form);
}
}
}

关于c# - 上下文菜单项的事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1498500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com