我是 C# 和 WinForms 的新手。我有一些带有右键单击(上下文菜单)事件的对象。但是,根据上下文(例如,取决于用户是在向导屏幕还是主屏幕中),我想更改右键单击的功能。我用谷歌搜索了一下,发现我可以使用+=
和-=
运算符,但我仍然无法实现我想要做的事情。例如,给定下面的代码,
有任何想法吗 ?
编辑:我希望OnClickCard
在不同的地方表现不同。
示例代码:
public override ContextMenuStrip GetContextMenuStrip(GoView view)
{
if (Selectable)
{
ContextMenuStrip contextMenu = new ContextMenuStrip();
if (!Empty)
{
// this is just for example so not showing the implementation
contextMenu.Items.Add(new ToolStripMenuItem(
"Delete",
null,
new EventHandler(OnClickDelete)));
}
// Empty
else
{
ToolStripMenuItem addCard = new ToolStripMenuItem("Add");
foreach (..some data..)
{
ToolStripMenuItem card = new ToolStripMenuItem(
data,
null,
new EventHandler(OnClickCard));
addCard.DropDownItems.Add(card);
}
}
}
else
{
return null;
}
}
private void OnClickCard(object sender, EventArgs e)
{
ToolStripMenuItem cardItem = (ToolStripMenuItem)sender;
if (cardItem.Text.Contains("ABC"))
{
Common.Forms.FormMMUSettings f = new FormMMUSettings(cardItem.Text,ParentMagazine.NextSite);
f.Show();
}
SetCard(new MagazineCard(2, cardItem.Text));
}