DataGridView内ComboBoxセルのSelectedIndexChangedイベントの検出 private DataGridViewComboBoxEditingControl dataGridViewComboBox = null; //EditingControlShowingイベントハンドラ private void DataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { //表示されているコントロールがDataGridViewComboBoxEditingControlか調べる if (e.Control is DataGridViewComboBoxEditingControl) { DataGridView dgv = (DataGridView)sender; //該当する列か調べる if (dgv.CurrentCell.OwningColumn.Name == "ComboBox") { //編集のために表示されているコントロールを取得 this.dataGridViewComboBox = (DataGridViewComboBoxEditingControl)e.Control; //SelectedIndexChangedイベントハンドラを追加 this.dataGridViewComboBox.SelectedIndexChanged += new EventHandler(dataGridViewComboBox_SelectedIndexChanged); } } } //CellEndEditイベントハンドラ private void DataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e) { //SelectedIndexChangedイベントハンドラを削除 if (this.dataGridViewComboBox != null) { this.dataGridViewComboBox.SelectedIndexChanged -= new EventHandler(dataGridViewComboBox_SelectedIndexChanged); this.dataGridViewComboBox = null; } } //DataGridViewに表示されているコンボボックスの //SelectedIndexChangedイベントハンドラ private void dataGridViewComboBox_SelectedIndexChanged(object sender, EventArgs e) { //選択されたアイテムを表示 DataGridViewComboBoxEditingControl cb = (DataGridViewComboBoxEditingControl)sender; Console.WriteLine(cb.SelectedItem); } ウィジェット型CM動画配信サービス manna [マナ] コメント: |