Probleme mit dem Click Event bei dynamischen Text- und Comboboxen



  • Ich erstelle mir dynamisch mehrere Text- und Comboboxen, welche jeweils eine Click Ereignismethode besitzen. In jeder der beiden Ereignismethoden wird ein Dialog geöffnet wo dann ein Wert eingegeben wird und die Methode läuft auch reibungslos. Kurios ist nur, das es vorkommt, das die jeweilige Ereignismethode direkt danach nochmals aufgerufen wird, weil ein weiteres Click Event vorliegt. Das Problem ist nicht immer da, und dann aber wiederum wird die Methode ( und damit der Aufruf meines Dialog Fensters ) bis zu 5 mal aufgerufen.
    Hab auch schon probiert am Ende der Methode e=null; ein zu setzen, aber das klappt nicht. Das Problem besteht sowohl in der Methode der Textboxen, als auch bei den Comboboxen.
    Kann mir vielleicht jemand sagen, was ein Click auslösen kann, außer meine Maus.
    Vielleicht hat jemand ja einen Tip.
    Die Ereignismethode für die Textbox ist ähnlich, aber dasselbe Problem.

    private void Combobox_Click1(object sender, EventArgs e)                            // CLICK auf Combobox/Parameter
            {
                button_ESC_Click(sender, e);
    
                int Nummer_der_combobox;
    
                ComboBox combobox = sender as ComboBox;
                Nummer_der_combobox = Convert.ToInt32(combobox.Name);
    
                senden_combobox_click = "P" + Nummer_der_combobox + "\r";
    
                for(int i = 0; i < 2; i++)
                {
                    for(int j = 0; j < 150; j++)
                    {
                        Daten.Parameter_Combobox_auslesen_temporär[j, i] = null;
                    }
                }
                BGW_P40_auslesen.RunWorkerAsync();
                Parameter_Combobox_auslesen Parameter_Combobox = new Parameter_Combobox_auslesen(Daten.Parameter_Combobox_auslesen_temporär, Parameter_Label.Name[Nummer_der_combobox], Daten.Wertebereich_double[Nummer_der_combobox, 0], Daten.Wertebereich_double[Nummer_der_combobox, 1], Daten.Wertebereich_double[Nummer_der_combobox, 2], Daten.Wertebereich_double[Nummer_der_combobox, 4]);
                Parameter_Combobox.ShowDialog();
    
                Daten.P40_Motorwahl = false;
                Daten.Wertebereich_double[Nummer_der_combobox, 4] = Parameter_Combobox.P40_gewählt;
                aktiv_Parameter[Nummer_der_combobox].Text = Parameter_Combobox.P40_gewählt;
                Wert_ComboBox[Nummer_der_combobox].Text = Parameter_Combobox.P40_gewählt;
                max_Parameter[Nummer_der_combobox].Text = Parameter_Combobox.Px_max;
                Daten.Wertebereich_double[Nummer_der_combobox, 2] = Parameter_Combobox.Px_max;
    
                senden = "P" + Nummer_der_combobox + "\r";
                schreiben_serial();
    
                senden = Parameter_Combobox.P40_gewählt + "\r\n";
                schreiben_serial();
    
                button_ESC_Click(sender, e);
    
                sender = null;
                e = null;
            }
    


  • Das klingrt schwer danach, dass du teilweise Events doppelt bindest. Ohne den relevanten Code können wir dir nicht helfen.



  • Danke 👍 . Der Tip war Gold wert. Hab es hin bekommen. Jedes mal beim Aktualisieren der Seite hat er den Text - und Comboboxen ein neues Binding zugewiesen. Hab es in meine Anfangsinitialisierung eingebunden die nur einmalig durchlaufen wird, und nu geht es 🙂


Anmelden zum Antworten