![](/img/trans.png)
[英]How to call a c# method from ihtmlelement button click in BHO using c#?
[英]How to call button click event using Normal method in c#?
我有一个方法名称 loadTest123()。 我试图从 loadTest123() 调用 Button1_Click 事件。 但是事件没有发生。 我正在尝试使用 Button1_Click 事件中的断点进行调试但未触发。
例如:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Linq;
namespace Test
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
loadTest123();
}
public Button Coke = new Button();
public void loadTest123()
{
Coke.Click += new EventHandler(button1_Click);
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello!!!");
}
}
}
请帮我解决这个问题。
您所做的只是绑定事件,您还没有调用它。 您必须调用该事件才能实际运行它。
做这个,
button1.PerformClick();
要么,
button1_Click(null, new EventArgs());
用你的方法。
loadTest123()
方法中的内容用于订阅事件,除非您单击该事件,否则它不会触发订阅的方法。
另外,您还附加了button1_Click
to Click
事件,但没有使用该名称声明任何方法。 您需要这样的东西。
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello!!!");
}
如果您希望以编程方式执行单击,则可以使用按钮上的PerfromClick
方法。
Coke.PerformClick();
您创建了按钮但未添加到控件中,这是故意的吗?
参见下面的代码和注释
public Form1()
{
InitializeComponent();
loadTest123();
}
public Button Coke = new Button();
public void loadTest123()
{
// BELOW LINE IS ONLY FOR REGISTER YOUR BUTTON'S CLICK EVENT
Coke.Click += new EventHandler(button1_Click);
// FIRE YOUR EVENT IN CODE BEHIND
Coke.PerformClick();
// OR
button1_Click(null, new EventArgs());
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello!!!");
}
这对我有用:
InvokeOnClick(button, e);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.