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