从不同的事件执行单击

时间:2013-11-06 10:52:25

标签: events c#-4.0 controls

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

当我右键单击激活contextMenuStrip时,我会检查ToolBar中是否有任何按钮 活性。如果为true,我使用“禁用...”创建一个新条目。

在contextMenuStrip中我想禁用ToolBar按钮。

 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的“禁用缩放窗口”时,我可以显示消息。

不幸的是我不知道如何以编程方式点击ToolBar的按钮。问题是我不需要ToolBar_ButtonClick事件中的任何代码。我只需要点击一下按钮。

如前所述,ToolBar是平台的一部分,我无法使用PerformClick()。

我从元数据中获得了有关ToolBar的一些信息

1)工具条

namespace devDept.Eyeshot
{
    [TypeConverter(typeof(ToolBarConverter))]
    public class ToolBar : BarBase, IDisposable
    {
        public float CornerRadius;
        public Color PressedColor;

        public ToolBar();
        public ToolBar(toolBarPositionType position, bool visible, ToolBarButton[] buttons);

        [Description("The list of ToolBar Buttons.")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public ToolBarButton[] Buttons { get; set; }
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        [Description("ToolBar position.")]
        public toolBarPositionType Position { get; set; }
        [Description("ToolBar visibility status.")]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
        public bool Visible { get; set; }

        [Description("Occurs when a ToolBar button is clicked.")]
        public event ViewportLayout.ToolBarButtonClickEventHandler ButtonClick;

        public static GraphicsPath BuildRoundedRectangle(float x, float y, float width, float height, float radius);
        public override bool Contains(Point mousePos);
        public void Dispose();
    }
}

2)ToolBarButtonClickEventHandler

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

        public ToolBarButton Button { get; }
    }
}

3)ToolBarButtonClickEventArgs

public delegate void ToolBarButtonClickEventHandler(object sender, ToolBarButtonClickEventArgs e);

有人能帮助我吗?

提前谢谢。

0 个答案:

没有答案