Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 从不同事件执行单击_Events_C# 4.0_Controls - Fatal编程技术网

Events 从不同事件执行单击

Events 从不同事件执行单击,events,c#-4.0,controls,Events,C# 4.0,Controls,在这个应用程序中,我有一个快捷方式的contextMenuStrip。我使用的平台带有一个工具栏。工具栏包含用于缩放、平移和动态观察移动的按钮 当我用鼠标右键单击激活contextMenuStrip时,我会检查工具栏上的任何按钮是否处于活动状态 激活。如果为真,我将使用“禁用…”创建一个新条目 在contextMenuStrip中,我想禁用工具栏按钮 private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemC

在这个应用程序中,我有一个快捷方式的contextMenuStrip。我使用的平台带有一个工具栏。工具栏包含用于缩放、平移和动态观察移动的按钮

当我用鼠标右键单击激活contextMenuStrip时,我会检查工具栏上的任何按钮是否处于活动状态 激活。如果为真,我将使用“禁用…”创建一个新条目

在contextMenuStrip中,我想禁用工具栏按钮

 private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {

        ToolStripItem item = e.ClickedItem;

        switch (item.Text)
        {

            case "Screenshot to Clipboard":
                singleViewportLayout1.CopyToClipboardRaster();
                break;

            case "Screenshot to Clipboard (vector)":
                singleViewportLayout1.CopyToClipboardVector(true);
                break;

            case "Panel Report":
                Read_Report();
                break;

            case "Disable Zoom Window":
                foreach (var button in singleViewportLayout1.ToolBar.Buttons)
                {
                    if (button.Name == "Zoom Window")
                    {
                        //button.Pushed = false; 
                        //singleViewportLayout1.Refresh();

                        ToolBar_ButtonClick(new object(), new devDept.Eyeshot.ToolBarButtonClickEventArgs(button));

                        // Click on Toolbar Button to be fired here
                    }
                }
                break;

            default:
                break;

        }

    }

    void ToolBar_ButtonClick(object sender, devDept.Eyeshot.ToolBarButtonClickEventArgs e)
    {
        MessageBox.Show(e.Button.Name + " clicked");
    }
这就是我在这个论坛上找到的解决方案。我可以在单击contextMenuStrip的“禁用缩放窗口”时显示消息

不幸的是,我不知道如何以编程方式单击工具栏上的按钮。问题是我不需要在工具栏按钮单击事件中使用任何代码。我只需按一下按钮

如前所述,工具栏是平台的一部分,我不能使用PerformClick()

我从元数据中获得了一些关于工具栏的信息

1) 工具栏

2) 工具栏按钮Clickeventhandler

namespace devDept.Eyeshot
{
    public class ToolBarButtonClickEventArgs : EventArgs
    {
        public ToolBarButtonClickEventArgs(ToolBarButton button);

        public ToolBarButton Button { get; }
    }
}
3) 工具栏按钮ClickEventArgs

public delegate void ToolBarButtonClickEventHandler(object sender, ToolBarButtonClickEventArgs e);
有人能帮我吗


提前感谢。

只需将放入单击事件处理程序的代码放入一个单独的方法中,即可轻松替代对PerformClick()的任何需求。改为调用该方法。你的意思是什么?工具栏按钮单击或上下文菜单单击项目。两者都是点击事件。如上所述,我需要从我的contextMenueStrip Click事件中以编程方式单击工具栏按钮。该消息只是来自此论坛的一个解决方案。请参考此讨论:“也许你并不真的想要你的代码”单击按钮。你只想从表单中的其他位置运行按钮后面的代码吗。这就是我的目的。-->我真的很想点击这个按钮,因为只要点击一下就会停止这个按钮后面的程序。有什么想法吗?谢谢
public delegate void ToolBarButtonClickEventHandler(object sender, ToolBarButtonClickEventArgs e);