如何在代码中触发click事件

时间:2011-10-23 18:45:30

标签: c# winforms

我有一个应用程序很久以前就被一些开发人员开发了,现在我们开始提供维护。

当我浏览代码时,我可以看到点击事件“private void _menuNewView_Click(object sender, EventArgs e)”,当我放置一个断点并从UI开始操作时,它不会触发,这是一个奇怪的问题。

当我打开设计视图时,我打开上下文菜单条,然后点击它正在触发点击事件“menu "newview"后面的代码的private void _menuNewView_Click(object sender, EventArgs e)"

但是从UI我启动了应用程序,并在代码中放置了click event的断点并执行了操作newview但它没有触发,任何人都可以在这里帮助我,新的视图操作现在还没有完成 这是点击事件

的参考之一

3 个答案:

答案 0 :(得分:7)

您可以通过两种方式触发它:

  1. 订阅按钮的Click事件:

    this.button1.Click += new EventHandler(button1_Click);
    //there you have an event:
    private void button1_Click(object sender, EventArgs e)
    {
       //code inside event...
    }
    
  2. 或使用实际代码:

    button1_Click(new object(), new EventArgs());
    

答案 1 :(得分:1)

我来到这里是为了帮助触发我在手工制作事件的工具线上的Click事件,所以我没有方法可以直接调用。但事实证明,tsi有一个名为

的方法
PerfomClick() 

触发点击事件;我不想找一个方法,所以我在这里分享它,并希望在同样的情况下帮助其他人。

如果有帮助,我的代码看起来像这样:

点击上下文菜单中的第二个工具条项目

 ContextMenuStrip.Items[1].PerformClick();

然后它自己的事件

 tsmi.Click += (s, e) =>
 {
      BackUpVSSolution(@"C:\temp\");
 };

它就像一个魅力

我想我也可以加上这个。 如果你只是想开始什么样的proses与文件类型或其他什么相关你可以把它改成像

 tsmi.Click += (s, e) =>
 {
     Process.Start("C:\temp\temptext.txt");
 };

这将打开您的默认文本编辑器程序。

答案 2 :(得分:0)

如果在创建Click_Event之后按钮控件名称发生更改,则会发生此问题。 所以我认为,复制您的代码并从代码视图中删除事件,运行您的解决方案并且肯定会发生错误,单击错误,这将指导您到Designer生成的代码。删除/注释该部分(Click_Event_Name的单行)。重建您的代码并创建一个新的Click_Event并粘贴您复制的代码。 很好,如果你已经找到任何解决方案。 希望这有助于其他人遇到同样的麻烦。