Autor Beitrag
mats74
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Do 16.02.12 14:42 
Hallo zusammen

Ich habe ein DataGridView mit einer DataGridViewComboBoxColumn-Spalte.

Meine kleine Aufgabe ist es nun, auf die Ereignissee dieses Controls der Spalte zu reagieren.
Also z.B. auf des SelectIndexChanged-Ereigniss (wie bei einer "normalen" ComboBox) sollte eine Validierung der Zelle und danach der Fokus einer anderen Zelle ausgeführt werden.

Der einzige Weg auf dieses Control zuzugreifen habe ich bis jetzt im EditingControlShowing-Ereigniss gefunden:
ausblenden C#-Quelltext
1:
2:
3:
4:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            e.Control.Text = "Hallo allerseits";
        }

Wie komme ich an die Ereignisse dieses Controls ran?

_________________
Gruss
mats74
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Do 16.02.12 15:10 
e.Control auf den tatsächlich verwendete Controltyp casten dann siehst du auch die Events.

Also z.b.

ausblenden C#-Quelltext
1:
2:
3:
ComboBox box = e.Control as ComboBox;
if(box != null)
   box.SelectedIndexChanged += meinEventHandler;

Für diesen Beitrag haben gedankt: mats74
mats74 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Do 16.02.12 15:13 
Ich habe eine Lösung unter folgendem Link gefunden.
Die verschiedenen Ereignisse der Combobox können dadurch beliebig verwendet werden.
ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
        {
            if (dataGridView1.CurrentCell.ColumnIndex == 5
                && e.Control is ComboBox)
            {
                ComboBox comboBox = e.Control as ComboBox;
                comboBox.SelectedIndexChanged += IrgendeineMethode;
            }
        }

private void IrgendeineMethode(object sender, EventArgs e)
        {
            MessageBox.Show("Methode funktioniert");
        }

Aufgabe gelöst :beer: .

_________________
Gruss
mats74
mats74 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 189
Erhaltene Danke: 26

Win 10
VS 2017/19, C++, C#
BeitragVerfasst: Do 16.02.12 15:15 
Sorry Ralf, ich habe dein Post zu spät gesehen, aber danke dafür.
Funktioniert natürlich einwandfrei.

_________________
Gruss
mats74