C# 如何在代码中触发单击事件
很久以前,我有一个由一些开发人员用c语言开发的应用程序,现在我们开始提供维护 当我浏览代码时,我可以看到一个单击事件“C# 如何在代码中触发单击事件,c#,winforms,C#,Winforms,很久以前,我有一个由一些开发人员用c语言开发的应用程序,现在我们开始提供维护 当我浏览代码时,我可以看到一个单击事件“private void\u menuNewView\u click(object sender,EventArgs e)”,当我从UI(一个奇怪的beaviour)设置断点并启动操作时,该事件不会触发 当我打开设计视图时,我打开上下文菜单条并单击菜单“newview”它正在触发代码隐藏单击事件“private void”\u menuNewView\u click(object
private void\u menuNewView\u click(object sender,EventArgs e)
”,当我从UI(一个奇怪的beaviour)设置断点并启动操作时,该事件不会触发
当我打开设计视图时,我打开上下文菜单条并单击菜单“newview”
它正在触发代码隐藏单击事件“private void”\u menuNewView\u click(object sender,EventArgs e)”
但从UI开始,我启动了应用程序,并在代码中的单击事件中放置断点,并执行了操作newview,但它没有触发,这里有人能帮我吗,newview操作目前还没有完成
这是点击事件的参考之一,您可以通过两种方式触发它:
通过订阅按钮的单击事件:
this.button1.Click += new EventHandler(button1_Click);
//there you have an event:
private void button1_Click(object sender, EventArgs e)
{
//code inside event...
}
或使用实际代码:
button1_Click(new object(), new EventArgs());
我来这里是为了帮助触发toolstripitem上的Click事件,我已经手动为它创建了一个事件,所以我没有直接调用的方法。但事实证明tsi有一个名为
PerfomClick()
触发点击事件;我不想寻找一种方法,所以我想在这里分享一下,希望能帮助其他处于同样情况的人
如果有帮助,我的代码如下所示:
在上下文菜单中的第二个toolstrip项上单击“执行”
ContextMenuStrip.Items[1].PerformClick();
然后事件就发生了
tsmi.Click += (s, e) =>
{
BackUpVSSolution(@"C:\temp\");
};
它就像一个符咒
我想我也应该加上这个。
如果您只想开始任何与文件类型相关的过程,您可以将其更改为
tsmi.Click += (s, e) =>
{
Process.Start("C:\temp\temptext.txt");
};
这将打开默认的文本编辑器程序。如果创建Click\u事件后按钮控件名称发生更改,则会出现此问题。
所以我认为,复制您的代码并从代码视图中删除事件,运行您的解决方案,肯定会发生错误,单击错误,这将引导您找到设计器生成的代码。删除/注释该部分(单击事件名称的单行)。重新生成代码并创建新的单击事件,然后粘贴复制的代码。
这很好,如果你已经找到了任何解决方案。
希望这能帮助其他有同样困难的人 尝试查找事件处理程序上的所有引用。它引用在哪里?那是唯一的引用?如果您在此处放置断点,它是否会运行?请确保没有在任何其他位置注销单击事件(-=)或重新构建_menuNew,menuNew.click+=
行在何处执行?您好,很抱歉占用您宝贵的时间,同样的点击事件被用于其他一些控制中,这是负责的一个,我把断点放在那里,现在一切都好了,谢谢你提供的信息,但错误来自我这边,相同的点击事件定义在两个不同的页面中,我选错了一个:D我实际上犯了同样的错误,你的评论帮助我谢谢你!