Ich habe eine winforms-Anwendung. Ich habe mehrere Formulare in dieser Anwendung (ein Hauptformular und mehrere spezialisierte Formulare), und auf nur einem Formular werden Klickereignisse für keine meiner Schaltflächen ausgelöst.Winforms Klicken Sie auf Ereignis nicht abfeuern
Es ist nicht so, dass der Code im Handler defekt ist. Dies kann dadurch festgestellt werden, dass beim Klicken auf den Button niemals ein Haltepunkt in der ersten Zeile des Handlers erreicht wird.
Andere Ereignisse funktionieren (Ich verwende CheckedChanged Ereignisse in diesem Formular und sie verhalten sich).
Meine Teammitglieder haben überprüft, und können auch nicht das Problem erkennen. Hier
ist eine vereinfachte Ansicht mein Code:
Designer generierter Code
partial class MyForm
{
private System.Windows.Forms.Button addButton;
private void InitalizeComponent()
{
this.addButton = new System.Windows.Forms.Button();
this.addButton.Name = "addButton";
// Drawing statements here
this.addButton.Click += new System.EventHandler(this.addButton_Click);
this.Controls.Add(this.addButton);
}
}
My-Code
public partial class MyForm : Form
{
public MyForm()
{
InitializeComponent();
}
private void addButton_Click(object sender, EventArgs e)
{
MessageBox.Show("The debugger is not reaching a break point on this line");
}
}
Edit: Weitere Informationen von Testing
Es gibt mehrere Dropdown-Listen in meiner Form. Ich habe festgestellt, dass das Klickereignis nur dann fehlschlägt, wenn ich zuerst eine Auswahl in einer Dropdown-Box getroffen habe.
Wenn ich keine Auswahl mache, wird der Unterbrechungspunkt im Handler der Schaltfläche ausgelöst. Sonst nicht. In diesen Dropdown-Listen sind keine Ereignisse registriert.
gibt es einen anderen Code in Ihrem Formular was entfernt die Verdrahtung zwischen Event & Handler nachdem 'InitializeComponent' aufgerufen wurde? – Kapoor
Können Sie sich ein Beispiel für etwas vorstellen, das das kann? Ich werde jetzt einen Blick darauf werfen, aber ich weiß nicht, wonach ich suchen sollte, um diese Verdrahtung rückgängig zu machen. –
Ist Ihre Schaltfläche aktiviert? –