2011-07-21 44 views
2

ユーザーが新しい行ごとにDataGridViewComboBoxColumnの値を選択できるようにしようとしています。私はComboBoxGridViewのデータベースにバインドしましたが、新しい行を入力するたびに、初期値なしのDataGridViewComboBoxColumnが表示されます。私は最初に値を設定する必要があります。DataGridViewのコンボボックスにC#のデフォルト値が表示されない

に新しい行を入力するたびに、デフォルト値をDataGridViewComboBoxColumnに表示させるにはどうすればよいですか?

bindingSource1.DataSource = itemBAL.GetTable(); 
dataGridView1.DataSource = bindingSource1; 
ItemName.DataSource = bindingSource1; //Where ItemName is an instance ofDataGridViewComboBoxColumn 
ItemName.DisplayMember = "Name"; 
ItemName.ValueMember = "ItemId"; 

答えて

0

あなたのDataGridViewComboBoxColumnデザイナーやコード内にアイテムを追加することができます。

これは私がデータベースにDataGridViewComboBoxを結合てる方法です。

6

コンボボックスの列のプロパティDefaultCellStyle.NullValueDefaultCellStyle.DataSourceNullValueを使用できます。

このhereには、非常に包括的なMSDNの記事があります。

私も次のコード例を与えてくれた:上記のコードで注意すべき

// Let's say I have this list of cars I want to add to my datagridview 
List<Car> cars = new List<Car>(); 
cars.Add(new Car() { Index = 0, Make = "Ford" }); 
cars.Add(new Car() { Index = 1, Make = "Chevvy" }); 
cars.Add(new Car() { Index = 2, Make = "Toyota" }); 

// I create the column, setting all the various properties 
DataGridViewComboBoxColumn col = new DataGridViewComboBoxColumn(); 
col.DataSource = cars; 
col.Name = "Cars"; 
col.DisplayMember = "Make"; 
col.HeaderText = "Car"; 
col.ValueMember = "Index"; 
col.DataPropertyName = "Car"; 

// As well as standard properties for a combobox column I set these two: 
col.DefaultCellStyle.NullValue = cars[0].Make; 
col.DefaultCellStyle.DataSourceNullValue = cars[0].Index; 

dataGridView1.Columns.Add(col); 

dataGridView1.DataSource = dt; 

ことの一つは、私はDataGridViewののデータソースのプロパティに結合できるようにDataPropertyNameを設定していますということです。

もし私がそれをやっていなかったら、ユーザーが何も選択していないときにコンボボックスの列にアクセスするときに追加のロジックを追加する必要があります。プロパティの値がnullになるからです(NullValueは実際のセルは、デフォルト値のみを表示します)。

2
bindingSource1.DataSource = itemBAL.GetTable(); 
dataGridView1.DataSource = bindingSource1; 
ItemName.DataSource = bindingSource1; //Where ItemName is an instance ofDataGridViewComboBoxColumn 
ItemName.DisplayMember = "Name"; 
ItemName.ValueMember = "ItemId"; 

のみ

dataGridView1["ItemName",dataGridRowNumber].value=1;//item id value 
この行を追加します。
関連する問題