【问题标题】:How to determine the parent of child menu item in ToolStripMenu? [duplicate]如何确定 ToolStripMenu 中子菜单项的父项? [复制]
【发布时间】:2017-11-15 13:15:59
【问题描述】:

我是一个爱好程序员。在我的 C# 2010 Express + SQL Server 2008 桌面应用程序中,我试图添加代码来点击子项的事件。我想确定这个子菜单项的父项(menuitem)。我怎样才能找到它?

【问题讨论】:

  • 你的意思是你想确定哪个菜单被按下来加载这个当前表单?或者您想获取单击的菜单条项的父菜单项?
  • 是的。我有一个叫做操作的菜单。在该子菜单中添加、编辑、删除,在每个子菜单中都有相同的数据库名称可供选择。我想知道我从哪个子菜单中选择了数据库。
  • 你试过那个解决方案了吗?
  • 是的。在第二行代码中出现错误 - 无法将类型“System.Windows.Forms.ToolStripItem”隐式转换为“System.Windows.Forms.ToolStripMenuItem”。存在显式转换(您是否缺少演员表?)

标签: c# winforms toolstripmenu


【解决方案1】:

这样试试

private void mnuDatabase1_Click(object sender, ...)
{
    ToolStripMenuItem MyMenuItem = (ToolStripMenuItem)sender;
    ToolStripMenuItem parent = (ToolStripMenuItem)MyMenuItem.OwnerItem;
    if (parent.Name == "mnuAdd")
        //Add Menu
    else if (parent.Name == "mnuEdit")
        //Edit Menu
    else if (parent.Name == "mnuDelete")
        //Delete Menu
}

【讨论】:

  • 第二行代码出错--无法将类型“System.Windows.Forms.ToolStripItem”隐式转换为“System.Windows.Forms.ToolStripMenuItem”。存在显式转换(您是否缺少演员表?)
  • 抱歉,我忘记将 OwnerItem 转换为 ToolStripMenuItem 类对象。
  • 是不是很神奇。错误消息建议进行实际修复。你为什么不试试呢,穆尼?
  • 对不起,我没明白那个意思。我尝试声明 ToolStripMenuItem OwnerItem = new ToolStripMenuItem。它没有解决错误。
  • 科迪·格雷,谢谢,我浏览了旧帖子。它部分解决了我的目的。如果需要,我会进一步尝试并回来。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-31
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
  • 2017-09-14
  • 2014-10-05
  • 1970-01-01
相关资源
最近更新 更多