簡體   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