C# DataGrid combobox Simple Sample
Summary
This article explains how to add the Combobox DataGrid Column Style into a DataGrid on your .NET Windows form.
The sample introduces how to add the Combobox DataGrid Column Style into a DataGrid on your .NET Windows form.The main idea of the sample is to provide you with a suggestion how to update values in other datagrid cells at a row when the current combobox cell has been updated. For this case when we need to update corresponding cells we are using the DataGrid ComboBoxColumn Leave event. When the user will leave changed combobox cell the event will have effect. In this example project when you change a value in Country column a suitable Capital name will be populated into Capital column and vise versa.
This combobox column style is not just a dropdown combobox, which appears when a datagrid cell becomes the current cell. The combobox DataGridColumnStyle automatically fills the text at the cursor with the value of its dropdown values list. As characters are typed, the component finds the closest matching item from the list and fills in the remaining characters.
The Simple Sample describes the Datagrid Combobox basic techniques only. To find out other attractive Datagrid Combobox Column?s features please learn our Datagrid Columns sample projects. Also the code example gives hints how to deal with a database when you need update a set of records in the .NET datagrid interface and store the updates back into datasource database.
// Set column styles
// Define comboCountry variable as a ComboBoxColumn column style
object of DataGridComboBoxColumn class
internal DataGridComboBoxColumn comboCountry;
// Define comboCapital variable as a ComboBoxColumn column style
object of DataGridComboBoxColumn class
internal DataGridComboBoxColumn comboCapital;
………..
// Set column styles
// Set datagrid ComboBox ColumnStyle for Country field comboCountry = (DataGridComboBoxColumn) new
DataGridComboBoxColumn(ref
Dictionary, 0, 0, true, false, false,
DataGridComboBoxColumn.DisplayModes.ShowDisplayMember, 0); comboCountry.Leave += new
DataGridComboBoxColumn.LeaveEventHandler
(this.comboCountry_Leave); TblStyle.GridColumnStyles.Add(comboCountry);
TblStyle.GridColumnStyles[0].MappingName = "Country"; TblStyle.GridColumnStyles[0].HeaderText = "Country";
TblStyle.GridColumnStyles[0].Width = 165; TblStyle.GridColumnStyles[0].NullText = string.Empty;
// Set datagrid ComboBox ColumnStyle for Capital field comboCapital = (DataGridComboBoxColumn) new
DataGridComboBoxColumn(ref Dictionary, 1, 1, true, false, false,
DataGridComboBoxColumn.DisplayModes.ShowDisplayMember, 0); comboCapital.Leave += new
DataGridComboBoxColumn.LeaveEventHandler(this.comboCapital_Leave); TblStyle.GridColumnStyles.Add(comboCapital);
TblStyle.GridColumnStyles[1].MappingName = "Capital"; TblStyle.GridColumnStyles[1].HeaderText = "Capital";
TblStyle.GridColumnStyles[1].Width = 165; TblStyle.GridColumnStyles[1].NullText = string.Empty;
………..
// "Country" datagrid cell has been left. Update
corresponding "Capital" cell value in the current datagrid row private void comboCountry_Leave(object sender,
System.EventArgs e) { System.Data.DataRow[] Capital = Dictionary.Select("Country='" +
comboCountry.combo.Text + "'"); DataGrid1[DataGrid1.CurrentRowIndex, 1] = Capital[0][1]; }
// "Capital" datagrid cell has been left. Update
corresponding "Country" cell value in the current datagrid row private void comboCapital_Leave(object sender,
System.EventArgs e) { System.Data.DataRow[] Country = Dictionary.Select("Capital='" +
comboCapital.combo.Text + "'"); DataGrid1[DataGrid1.CurrentRowIndex, 0] = Country[0][0];
Learn more about DataGridColumns assembly
The assembly online documentation: http://www.rustemsoft.com/DataGridColumnsDoc/
Russ Sabitov
RustemSoft.com












No comments yet... Be the first to leave a reply!