繁体   English   中英

c#中如何使用Normal方法调用按钮点击事件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM