http://msdn.microsoft.com/en-us/library/7tas5c80.aspxの手順に従って、datagridview でカスタム コンボボックス (ComboBoxEx) をホストしました。
- DataGridViewColumn から派生した DataGridVIewComboExColumn を作成しました。
- 「DataGridVIewComboExCell」という名前のカスタム セルは、DataGridViewCell から作成されます。
- 最後に、カスタム編集コントロール「ComboExEditCtrl」(ComboBoxEx から派生し、IDataGridViewEditingControl を実装) が作成されます。
ComboExEditCtrl では、OnSelectedValueChanged メソッドを以下のようにオーバーライドします。
protected override void OnSelectedValueChanged(EventArgs eventargs)
{
valueChanged = true;
this.EditingControlDataGridView.NotifyCurrentCellDirty(true);
base.OnSelectedValueChanged(eventargs);
}
グリッドが読み込まれるたびに、カスタム コントロール (ComboExEditCtrl) がセルに表示されます。問題は、カスタム コントロール (ComboExEditCtrl) の値を変更し、次のセルをクリックするとカスタム コントロールが消えることです。また、datagridview の同じセル (カスタム コントロール セル) をクリックすると、カスタム コントロールが表示されます。
MSDN (上記のリンク) で説明されている手順とほぼ同じ手順に従いました。何が欠けているのかわからない。助けてください