【问题标题】:How to call Menustrip items from toolstrip click event如何从工具条点击事件中调用 Menustrip 项目
【发布时间】:2018-09-06 11:10:52
【问题描述】:

这是我的代码,我想从工具条单击事件中调用菜单条子项 例如:菜单如:设置 -> 用户。我想从工具提示单击调用 user_click 事件

private void tbrIUC1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    string menuname="mnuuser";
    e.ClickedItem.Click += new EventHandler(menuname + "_Click");
}

【问题讨论】:

  • 订阅 Click 事件是一个严重的错误。这只能执行一次,属于构造函数或 InitializeComponent() 方法。只需直接调用点击事件处理程序,如 user_click(sender, EventArgs.Empty);

标签: c# toolstrip menustrip


【解决方案1】:

您可以使用匿名委托:

private void tbrIUC1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
    string menuname="mnuuser";
    e.ClickedItem.Click += (s, ev) => { your code when clicked };
}

【讨论】:

    【解决方案2】:

    从另一个 stackoverflow 帖子中,我得到了以下工作:

    ButtonName.Click += (se, ev) => button1_Click(se, ev);
    

    链接到“灵感”How can I create a dynamic button click event on a dynamic button? 寻找 A9S6 的答案和 Scott Beeson 对此的评论

    编辑

    要根据函数名(字符串)调用函数,我得到了以下文章: http://www.vcskicks.com/call-function.php 我现在还没有为我工作,但我想分享一个可能的解决方案

    如果全部失败:我建议使用 Switch 声明一个新方法,以获取控件并传递字符串

    【讨论】:

    • 不工作,实际上我在工具条中有一些捷径,以及给该菜单条项目起什么名字,我也给工具条项目起名。当我单击工具条时,我将获得菜单条项目名称,但我想使用字符串“_Click”动态调用该单击事件,因此它不起作用
    • 快速回答:使用开关(menuname) 长回答:我要看看我能完成什么:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-06-29
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    相关资源
    最近更新 更多