0

DataTable にバインドされた DataGridView があります。バインディングが完了したら、DGV のすべてのセルを手動で検索し、1 つの通常の DGV セルを DataGridViewComboBoxCell インスタンスに置き換えます。セルには、独自のデータ ソースがバインドされています。

私が抱えている問題は、ユーザーが DataGridViewComboBoxCell セルで選択を行ってそれを離れると、表示される文字列が DisplayMember の内容 (「Warehouse #23」のようなもの) からその基になる ValueMember (23 のようなもの) に変更されることです。 . セルが再入力されると、DisplayMember (など) の表示に戻ります。これ以外はすべて正常に機能します (GUI は使用可能、選択は可能、表示だけに問題あり)。

この動作を制御する DataGridViewComboBoxCell オブジェクトのプロパティはありますか? または、この動作は、DataGridViewComboBoxCell を通常の DGV 列に手動で埋め込んだことによるものですか?

ああ、私がこれを行っている理由は、オンザフライのユーザー入力 GUI を構築する簡単な方法が必要だからです。プログラムで DataTable を作成し、DGV にプラグインするだけです。DGV は「GUI」を構築し、それを使えるようにします。ヘッダーに 1 つの列を使用し、ユーザーの入力に 1 つの列を使用できます。標準のテキスト セル (基本的にはテキスト ボックス) だけでなく、選択指向のコンボ ボックス セルも必要になります。

4

1 に答える 1

0

このような状況に陥る可能性のある人々のために、ある種の解決策を提供します。

何が起こっているのか本当の原因はわかりませんでしたが、セルの内容の表示を手動で処理することで状況を修正することができました。これを行うには、DataGridView の CellFormatting イベントのイベント ハンドラーを実装します。そこで、e.Value プロパティを表示する必要のあるものに設定します。

于 2010-03-10T13:00:44.580 に答える