处理DataGridViewComboBoxCell的DataGridViewComboBoxEditingControl类的事件, DataGridViewComboBoxEditingControl类继承自ComboBox类,事件都差不多的.
例如:下面的代码示例演示如何使用 DataGridView.EditingControlShowing 事件处理程序添加 DataGridViewComboBoxEditingControl 事件的处理程序。在这个示例中,编辑控件被强制转换为 ComboBox 以处理 ComboBox.SelectedIndexChanged 事件。 private DataGridView dataGridView1 = new DataGridView();
private void AddColorColumn() { DataGridViewComboBoxColumn comboBoxColumn = new DataGridViewComboBoxColumn(); comboBoxColumn.Items.AddRange( Color.Red, Color.Yellow, Color.Green, Color.Blue); comboBoxColumn.ValueType = typeof(Color); dataGridView1.Columns.Add(comboBoxColumn); dataGridView1.EditingControlShowing += new DataGridViewEditingControlShowingEventHandler( dataGridView1_EditingControlShowing); }
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ((ComboBox)e.Control).SelectedIndexChanged += new EventHandler(ComboBox_SelectedIndexChanged); }
private void ComboBox_SelectedIndexChanged(object sender, EventArgs e) { ((ComboBox)sender).BackColor = (Color)((ComboBox)sender).SelectedItem; }
// Set DataGridView Combo Column for CarID field DataGridViewComboColumn ColumnCar = new DataGridViewComboColumn(); // DataGridView Combo ValueMember field name is “CarID” // DataGridView Combo DisplayMember field name is “Car” ColumnCar.DataPropertyName = “CarID”; ColumnCar.HeaderText = “Car Name”; ColumnCar.Width = 80; // Bind ColumnCar to Cars table ColumnCar.box.DataSource = ds.Tables[“Cars”]; ColumnCar.box.ValueMember = “CarID”; ColumnCar.box.DisplayMember = “Car”; // Add ColumnCar onto DataGridView layout DataGridView1.Columns.Add(ColumnCar);