none
DataGridView_CellClick deaktiveren RRS feed

  • Frage

  • Hallo Leute, in meiner Applikation gibt es folgende Eventmethode:

            private void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (e.ColumnIndex == 0)
                {
                    MessageBox.Show("Diesen Wert können Sie nicht verändern");
                    return;
                }
                if (e.ColumnIndex != -1 && e.ColumnIndex != 0)
                {
                    button3 = new Button();
                    button3.Size = new Size(50, 23);
                    button3.Location = new Point(100, 425);
                    button3.Text = "Submit";
                    button3.BackColor = Color.Yellow;
                    button3.FlatStyle = FlatStyle.Popup;
                    this.Controls.Add(button3);
                    button3.Click += new EventHandler(button3_Click);
                }
            }

    Wie muss ich codieren, wenn diese Methode nicht aufgerufen werden soll, sofern ich mich in einem anderen Menupunkt befinde? Ich möchte dieses Ereignis quasi vorübergehend deaktivieren, um es später dann wieder zu aktivieren. Geht das überhaupt? Ich könnte in die Kondition eine zusätzliche Option einbauen, die prüft, ob das TestStartenToolStripMenuItem_Click()-Ereignis ausgelöst wurde. wenn ja, dann Code nicht ausführen. Wie prüfe ich also, ob das TestStartenToolStripMenuItem_Click()-Ereignis ausgelöst wurde?




    • Bearbeitet tklustig Donnerstag, 28. Juni 2018 09:58
    Donnerstag, 28. Juni 2018 09:52

Antworten

  • Hat sich erledigt. Ich definiere eine boolsche Variable, wie folgt:

        //legt fest, ob der Test bereits gestartet wurde
            private bool CheckTestStatus = false;

    und prüfe dessen Value einfach in der Kondition, wie folgt:

            private void DataGridView_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                if (!CheckTestStatus)
                {
                    if (e.ColumnIndex == 0)
                    {
                        MessageBox.Show("Diesen Wert können Sie nicht verändern");
                        return;
                    }
                    if (e.ColumnIndex != -1 && e.ColumnIndex != 0)
                    {
                        button3 = new Button();
                        button3.Size = new Size(50, 23);
                        button3.Location = new Point(100, 425);
                        button3.Text = "Submit";
                        button3.BackColor = Color.Yellow;
                        button3.FlatStyle = FlatStyle.Popup;
                        this.Controls.Add(button3);
                        button3.Click += new EventHandler(button3_Click);
                    }
                }
            }
    In TestStartenToolStripMenuItem_Click setze ich  CheckTestStatus auf true, und am Ende wieder auf false



    • Bearbeitet tklustig Donnerstag, 28. Juni 2018 10:14
    • Als Antwort markiert tklustig Donnerstag, 28. Juni 2018 10:15
    Donnerstag, 28. Juni 2018 10:12