6

以前に同様の質問をしましたが、コードははるかに複雑でした。この質問にも同様の問題がありますが、コードは大幅に簡略化されています。それでも、この例のように単純でも、ドロップダウンを取得して正しい値を事前に選択することはできません。

値が正しく入力されたドロップダウンがあります。また、ドロップダウンをいずれかの値に変更してからフォームを保存すると、データベースレコードが正しい値で更新されます。それだけは機能していますが、フォームの読み込み時に正しい値を選択しても機能しません。

これらの行をsaveメソッドに入れて、何を操作しているかを確認します。

var test1 = _myLookupEdit.EditValue;  //evaluates to 2
var test2 = _myLookupEdit.Properties.KeyValue;  //evaluates to 2

ただし、フォームの読み込み中にこれらのいずれかを設定しても、何も起こりません。ドロップダウンには空白のエントリが選択されています(ドロップダウンを展開すると、残りの値が表示されます)。私はこれらの方法のそれぞれを試しました:

_myLookupEdit.EditValue = 2;
_myLookupEdit.Properties.KeyValue = 2;

編集-私はプラトンの答えの下にコメントを投稿しましたが、ここにも投稿します。最終的に、列挙型ではなく、代わりにストアドプロシージャを使用して、このドロップダウンにデータを入力しました。その時点から、ドロップダウンは正しい選択値でロードされます。

4

1 に答える 1

10

エディタの Properties.ValueMember フィールド タイプのタイプに従って、エディタの EditValue プロパティを値に設定する必要があります。つまり、これが文字列フィールドの場合、EditValue は 2 ではなく「2」に設定する必要があります。これは役立つはずです。そうでない場合は、エディタの DataSource プロパティを設定した後で、エディタの Properties.ForceInitialize() メソッドを呼び出してみてください。

于 2013-03-01T20:18:55.093 に答える