2

コンボボックスに多数の値が入力されている場合でも、コンボボックスにはデフォルトで空白のフィールドが表示されます

ColumnSpeed.DataSource = speedList;
ColumnSpeed.ValueType = typeof(string);

次のことも試しましたが、空白のテキストが表示されます。

foreach (DataGridViewRow row in myDataGridView.Rows)
{
    DataGridViewComboBoxCell cell = row.Cells[ColumnSpeed.Index] as DataGridViewComboBoxCell;
    if (cell != null)
    {
        cell.DataSource = speedList;
        cell.Value = cell.Items[0].ToString();
    }   
}
4

3 に答える 3

0

私はあなたが書いたコードがうまくいくはずだと信じています..あなたが同じものをどこで呼んでいるのか知りたいだけです。グリッドのdatabinding_completeイベントで呼び出すと機能するはずです

于 2011-01-11T06:01:55.870 に答える
0

DataGridView に割り当てた ValueMember が、割り当てた DisplayMember と異なる可能性があります。その場合、空の値が返され、さらに DataGridError が発生します。

試してみてください:

foreach (DataGridViewRow row in dgMain.Rows){
DataGridViewComboBoxCell pkgBoxCell = row.Cells[ColumnSpeed.Index]

pkgBoxCell.Value = ((Package) pkgBoxCell.Items(0)).Id

}

vb.net から変換したため、コンパイルできない可能性があります。値を設定した行の代わりに、正しい ValueMember 値を取得して設定するために必要な手順を実行します。私の例では、アイテムを特定のタイプにキャストし、その ID を使用しています。

于 2010-07-30T22:00:06.270 に答える
0

すべての DataSources を設定したら、DataGridView.Refresh() メソッドを呼び出してみてください。これは通常、DataSource への変更を表示するために必要です。

于 2013-09-05T01:29:48.740 に答える