2016-05-26 11 views
0

メソッド名はloadTest123()です。 loadTest123()からButton1_Clickイベントを呼び出そうとしました。しかし、イベントは発生しませんでした。 Button1_Clickイベントでブレークポイントを使用してデバッグしようとしていますが、トリガーはしません。C#でNormalメソッドを使用してボタンのクリックイベントを呼び出す方法は?

例えば:

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!!!");  
     }   
    } 
} 

この問題を解決するために私を助けてください。

答えて

1

loadTest123()の方法では、をクリックしてをクリックするまで、サブスクライブしたメソッドがトリガーされません。

また、button1_ClickClickイベントを添付しましたが、名前で宣言されたメソッドはありません。このような(何か)必要があります。

private void button1_Click(object sender, EventArgs e) 
    { 
     MessageBox.Show("Hello!!!");  
    }   

あなたがプログラム的をクリックし実行するために探している場合は、PerfromClick方法は、あなたがそれを使用することができ、ボタンの上にあります。

Coke.PerformClick(); 

あなたは、ボタンを作成したが、コントロールに追加されていない、これは意図的なものでしょうか?

2

これまで行ってきたことは、イベントのバインディングであり、あなたはそれを呼び出さなかったことです。 実際に実行するには、そのイベントを呼び出す必要があります。

は、あなたの方法で

button1.PerformClick(); 

OR、

button1_Click(null, new EventArgs()); 

これを行います。

+0

コメント....それを参照してください。私は同じ問題に直面しています。 Button1_Clickにブレークポイントを設定しますが、トリガーしないイベントです。 – dhamo

+0

更新されたコードを表示できますか?あなたがparamとして渡しているものを見たい。 – DDave

+1

nullと新しいEventArgs()を呼び出す: ロード機能のbutton1_click(null、新しいEventArgs()) – Silvinus

0

は、コードの下に表示し、コードを更新

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!!!");  
}   
+0

ありがとうございます.....うまく動作します。 – dhamo

+0

plsはそれをcolseとupvoteのための答えを受け入れる –

関連する問題