2

複数の行のうちの1つの特定の行にドロップダウンリストを表示する必要があります。私のdataGridViewには2つの列(パラメーターと値)があり、コードに3つの行を動的に追加しています。3行すべてについて、パラメーターテキストは固定されており、ユーザーが変更することはできません。最初の行の場合、パラメータテキストは「prm1」であり、値テキストはドロップダウンリストから選択されます。他の2行、値のテキストはユーザーが入力したテキストボックスになります。検索してみましたが、答えが見つかりませんでした。ここで私を助けてください。

4

2 に答える 2

5

実行時に特定のDataGridViewセルを置き換えることができます。たとえば、1つのセルにコンボボックスが必要な場合は、DataGridViewTextBoxColumnを使用して、最初の行のセルを置き換えることができます。このようなもの:

void dataGridView1_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
{
    List<Book> books = new List<Book>();
    books.Add(new Book { bookID = 1, bookName = "Test-Driven Development (Kent Beck)" });
    books.Add(new Book { bookID = 2, bookName = "Refactoring (Martin Fowler)" });
    books.Add(new Book { bookID = 3, bookName = "Code Complete: 2nd Edition (Steve McConnell)" });
    DataGridViewComboBoxCell c = new DataGridViewComboBoxCell();

    c.DataSource = books;
    c.Value = 1;
    c.ValueMember = "bookID";
    c.DisplayMember = "bookName";

    dataGridView1.Rows[0].Cells[0] = c;
}

これを別の方法で実行して、DataGridViewComboBoxColumnの特定のコンボボックスセルをDataGridViewTextBoxCellに置き換えることもできます。


ただし、これは機能しますが、いくつかのコンボボックスを読み取り専用に設定することで使いやすさが向上する可能性があります。

于 2012-08-10T12:42:35.097 に答える
2

Form Designerのグリッドの右クリック コンテキスト メニュー項目Edit Columns...を使用して、 ComboBox列をグリッドに追加することを検討してください。列を追加するには、[列の編集] ダイアログの [追加] ボタンをクリックし、次に示すように[タイプ= ] を選択する必要があります。DataGridViewComboBoxColumn

ここに画像の説明を入力

注意: ComboBox のドロップダウン リストを設定するには、列のItemsプロパティまたはDataSourceプロパティを使用する必要もあります。

于 2012-08-10T12:09:36.310 に答える