Laden...

DataGridView mit Combox zwei Spalten

Erstellt von stony17 vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.477 Views
S
stony17 Themenstarter:in
36 Beiträge seit 2010
vor 12 Jahren
DataGridView mit Combox zwei Spalten

Hallo,

ich möchte gerne in einem DataGridView Steuerelement eine Combobox anzeigen,
welche 2 Spalten anzeigt bzw. die Spaltenbreite unterschiedl einstellen könnte. Die Daten des DataGridView-Elementes kommen über ein DataTable und auch die Daten der Combobox kommen über ein DataTable (aber nicht das gleich).
Das mit DataGridViewComboBoxColumn kann ja scheinbar nur eine Spalte anzeigen. Ich würde zwar auch mit dieser auskommen, wenn es die Möglichkeit gäbe die Spaltenbreite unterschiedlich zu gestalten. Sprich im DataGridView-Element sollte es z.B. 100 Breit sein und wenn man in die Auswahl geht sollte es z.B. 500 Breit werden.

lg
stony

lg
stony

C
11 Beiträge seit 2012
vor 12 Jahren

Hallo!

Ein DataGridView kann mehr als nur eine Spalte anzeigen!

Suche mal im Internet nach c# datagridview column hinzufügen, da wirst du einige Sachen finden, die dir sicher weiterhelfen!

mfg CarolaA

S
stony17 Themenstarter:in
36 Beiträge seit 2010
vor 12 Jahren

Ich mein mehrer Spalten bei der eingebundenen Combobox oder die Möglichkeit die Spaltenbreite der Comboxbox zu ändern, wenn dieses selektiert wird.

lg
stony

C
11 Beiträge seit 2012
vor 12 Jahren


//Dieser Handler wirft manuell die CellValueChange Event aus, indem er die 
//CommitEdit  Methode aufruft
        private void dgvDataView_CurrentCellDirtyStateChanged(object sender, EventArgs e)
        {
            if (dgvDataView.IsCurrentCellDirty)
            {
                dgvDataView.CommitEdit(DataGridViewDataErrorContexts.Commit);
            }
        }
//Hier kann man überprüfen, welchen Wert eine Zelle hat
        private void dgvDataView_CellValueChanged(object sender, DataGridViewCellEventArgs e)
        {
            if (dgvDataView.Columns[e.ColumnIndex].Name == "CheckBox")
            {
                DataGridViewCheckBoxCell checkBoxCell = (DataGridViewCheckBoxCell)dgvDataView.Rows[e.RowIndex].Cells["CheckBox"];
                if (dgvDataView.Rows[e.RowIndex].Cells["CheckBox"].Value.ToString() == "True")
                {
                    dgvDataView.Columns[e.ColumnIndex].Width = 100;
                }
            }
        }


F
10.010 Beiträge seit 2004
vor 12 Jahren

Und was hat das jetzt mit der Frage zu tun?

@stony17:
Eine ComboBox in einem DGV kann genauso viel wie eine normale.
Und die kann per DataBinding keine 2 Spalten darstellen.

C
11 Beiträge seit 2012
vor 12 Jahren

@FZelle: stony17 möchte die Weite seiner Spalte mit der ComboBox ändern, wenn er keine zweite Spalte hinzufügen kann!
Und der von mir hinzugefügte Code, macht das möglich, auch wenn ich es mit einer CheckBox gemacht habe!

5.299 Beiträge seit 2008
vor 12 Jahren

wird das nicht sehr komisch aussehen?

weil die normale GridCell zeigt ja nur eine spalte an, und öffnet man dann die Combo, sinds auf einmal 2.

Bei DataTables kann man auch berechnete Spalten zufügen, etwa derart, dass zB. Vor- und Nachname zusammengehängt wird. So eine ber. Sp. ließe sich leicht becomboboxen.

Der frühe Apfel fängt den Wurm.