2008-09-18 11 views
5

ich eine Datagridview mit einer DataGridViewComboBoxColumn Säule mit 3 Werte haben:Set Artikel auf einem DataGridViewComboBoxColumn ausgewählt

„Small“, „Medium“, „Large“

ich wieder die Standard-Benutzer die in diesem Fall ist "Medium"

Ich möchte eine Drop-Down-Zelle in der Datagridview zeigen aber den Wert auf "Medium". Ich würde dies in einer normalen Combobox machen, indem ich einen ausgewählten Index mache oder einfach die Text-Eigenschaft eines Kombinationsfelds setze.

Antwort

5

Wenn Sie in die Datagridview kommen, ist es wahrscheinlich am besten, in Databinding zu gelangen. Dies kümmert sich um alle ausgewählten Index-Sachen, über die Sie sprechen.

Wenn Sie jedoch selbst dort erhalten möchten,

DataGridView.Rows[rowindex].Cells[columnindex].Value 

lassen Sie den Wert auf die DataGridViewComboBoxColumn zugeordnet bekommen und eingestellt. Stellen Sie sicher, dass Sie den richtigen Zeilenindex und Spaltenindex zusammen mit dem Wert für den richtigen Typ angeben (denselben Typ wie die ValueMember-Eigenschaft von DataGridViewComboBoxColumn).

+0

Dies funktioniert aber nur reflektiert, nachdem ich aus dem der Zelle bewegen, dessen Wert gesetzt wird. – IsmailS

+0

Danke, verbrachte viel Zeit zurück in DataGridViewComboBoxColumn und versuchen, meinen Wert zu finden – James

0

Sie rufen die Benutzerdaten ab und versuchen, manuell Werte in der DataGridView festzulegen, oder haben Sie die DataGridVew tatsächlich an eine Datenquelle gebunden? Denn wenn Sie das Raster an eine Datenquelle gebunden haben, sollten Sie nur die DataPropertyName auf der Spalte müssen die Zeichenfolge Name des Objekts Eigentum zu sein:

[DataGridViewComboboxColumnName].DataPropertyName = "PropertyNameToBindTo"; 

Oder meinen Sie, Sie wollen, dass es auf die Standard Mittel für eine neue Reihe?

+0

ich die Werte am Hinzufügen programmatisch mit items.AddRange – leora

0

Sie diese Aufgabe erfüllen Sie so etwas tun sollen: -

  this.dataGridViewStudentInformation.Columns[ColumnIndex].DataPropertyName = dataGridViewStudentInformation.Columns[2].Name ; //Set the ColumnName to which you want to bind. 

und den Standardwert in der Datenbank als Medium eingestellt.

2
DataGridViewComboBoxColumn ColumnPage = new DataGridViewComboBoxColumn(); 
ColumnPage.DefaultCellStyle.NullValue = "Medium"; 
+0

Bitte poste nicht einfach den Code. Geben Sie Erklärungen oder Informationen oder Hinweise zu Ihrem Code an. Siehe beispielsweise [diese Antwort] (http://stackoverflow.com/a/16893057/756941). – NAZIK