の内側にそれを置くことを試みることができます。すべてのセルは単一の値を持つことができるため、名前と電話機を単一のオブジェクト(連絡先など)にラップする必要があり、バインドされたデータソースプロパティはそのタイプである必要があります。
セルに表示するには、実際に3つのコントロールをすべて表示する必要はありません。編集モードでないときは、2つのラベルが必要です(名前は1つ、電話は1つ)。編集モードでは、コンボボックスとラベル(または電話機を編集可能にする場合はテキストボックス)が必要ですが、それは難しいかもしれません。
カスタムDataGridViewCell、カスタムDataGridViewColumn、およびカスタム編集コントロールを作成するとします。
カスタムDataGridViewCellの子として2つのラベルを追加することもできますが、単にペイントをオーバーライドしてセルのサーフェスに直接名前と電話を描画する方がはるかに優れています。
カスタム編集コントロールは、IDataGridViewEditingControlインターフェイスを実装する任意のコントロールです。したがって、コンボボックスとラベル(またはテキストボックス)を含む複合コントロールにすることができます。コンポジットコントロールは、Contactオブジェクトを単一の単位として編集する必要があります。
また、カスタムDataGridViewColumnは、編集コントロールのドロップダウン部分のデータソースを提供します。
https://msdn.microsoft.com/en-us/library/7fb61s43(v=vs.110).aspxはカスタムセルと列を作成する方法を説明しています。
https://msdn.microsoft.com/en-us/library/7tas5c80(v=vs.110).aspxは、カスタム編集コントロールを作成する方法とカスタムセルからインスタンス化する方法について説明しています。
これらのコントロールを1つのセルにまとめたいですか?彼らは同じ値を表示/編集していますか? –
たとえば、ラベルには名前が表示され、コンボボックスには選択する名前のリストが表示され、テキストボックスには電話番号が表示されます。ユーザーがコンボボックスから名前を選択するたびに、彼が選んだ名前(もちろんデータベースから)に応じてラベルとテキストボックスが変わります。はい、1つのセルにすべて –
あなたの要求が正確であるかどうかは不明です。しかし、 'Label'、' TextBox'、 'ComboBox'を' DataGridView'に表示する必要がある場合は、カスタムの列型を作成する必要はありません。読み込み専用 'DataGridViewTextBoxColumn'をラベルとして使用し、' DataGridViewTextBoxColumn'をテキストボックスとして、 'DataGridViewComboBoxColumn'をコンボボックスとして使用できます。 –