2016-05-26 2 views
0

Ich habe einen Methodennamen loadTest123(). Ich habe versucht, das Ereignis Button1_Click von loadTest123() aufzurufen. Aber Ereignis ist nicht aufgetreten. Ich versuche, mit Breakpoint in Button1_Click-Ereignis zu debuggen, aber nicht auszulösen.So rufen Sie ein Klickereignis mit der normalen Methode in C# auf?

Z. B:

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

Bitte helfen Sie mir, dieses Problem zu lösen.

Antwort

1

Was Sie in loadTest123() Methode haben, ist für ein Ereignis abonnieren, wird es nicht abonnierten Methode auslösen, bis Sie klicken darauf ausführen.

Außerdem haben Sie button1_Click an Click Ereignis angefügt, aber es gibt keine Methode mit dem Namen deklariert. Du brauchst so etwas.

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

Wenn Sie programmatisch ausführen suchen klicken, gibt es eine PerfromClick Methode auf die Schaltfläche ist, könnten Sie es verwenden.

Coke.PerformClick(); 

Sie erstellt die Schaltfläche aber nicht zu Kontrollen hinzugefügt, dann ist dies beabsichtigt?

2

was Sie getan haben, ist nur Bindung von Ereignis, Sie haben es nicht aufgerufen. Sie müssen dieses Ereignis aufrufen, um es tatsächlich auszuführen.

dazu

button1.PerformClick(); 

OR,

button1_Click(null, new EventArgs()); 

in Ihrer Methode.

+0

den Code aktualisiert .... bitte, dass sehen. Ich stehe vor demselben Problem. Ich habe einen Breakpoint in Button1_Click gesetzt, aber das Event wird nicht ausgelöst. – dhamo

+0

können Sie mir Ihren aktualisierten Code zeigen? möchte sehen, was du als param überholst. – DDave

+1

Aufruf mit null und new EventArgs(): button1_click (null, neue EventArgs()) in Ihrer Ladefunktion – Silvinus

0

siehe unten Code und Kommentare

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

viel dank ..... funktioniert gut. – dhamo

+0

pls akzeptieren antwort für colse it und upvote –

Verwandte Themen