- PR -

ComboBoxで、Textへ代入しても、前の値が参照される。

1
投稿者投稿内容
Cow
会議室デビュー日: 2004/03/26
投稿数: 8
投稿日時: 2004-03-26 16:34
.NET初心者ですが、コンボボックスの下記の問題で困っています。どうぞ教えてください。

手入力では、問題ないのですが、プログラムでTextへ代入すると、combobox1.Textの内容が前のままです。リストから選択した直後に、別な値をプログラムから代入すると上記のようになります。手入力の後に、別な値をプログラムから代入すると問題ありません。
画面上は代入した値が表示されているのですが、combobox1.Textを参照すると、前の値のままです。手入力した場合は、問題ありません。

combobox1.DataSource 、combobox1.DisplayMember、combobox1.ValueMember の
3つを指定しています。





[ メッセージ編集済み 編集者: 未記入 編集日時 2004-03-26 17:01 ]
ant
常連さん
会議室デビュー日: 2004/03/24
投稿数: 44
投稿日時: 2004-03-26 21:30
こんばんは。

http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q814346
ここにあるように、どうやらバグのようです。
AccessibleObjectを使用する回避策があるようです。
Cow
会議室デビュー日: 2004/03/26
投稿数: 8
投稿日時: 2004-03-27 07:13
ありがとうございます。調べてみます。
Cow
会議室デビュー日: 2004/03/26
投稿数: 8
投稿日時: 2004-03-27 08:52
ありがとうございました。おかげさまで、前進いたしました。しかし、以前解決しない問題があります、何とかいい方法はありませんしょうか。
---
AccessibilityObjectを使用して変更後のTextの値参を照することはできましたが、
別な問題として、以前、TextChangedイベントが発生しません、何故でしょうか。
combo1.Textに値を代入しても前の値からtextの値が変化しないため、TextChangedイベント
が発生しないと思われますが。(AccessibilityObject.valueに値を代入してみても、
TextChangedイベントは発生しませんでした)
TextChangedイベントが発生しなくても、combo1.AccessibilityObject.valueへの値の代入
により発生するイベントがあれば助かるのですが。


ant
常連さん
会議室デビュー日: 2004/03/24
投稿数: 44
投稿日時: 2004-03-27 13:15
凝ったことをしようとすると、きりがありませんので”逃げ”の対策を…
Textプロパティに直接値を代入してもcomboBoxの値は更新されませんが、
その直前にTextプロパティにnullを代入してみてください。
つまり、以下のようになります。
コード:
comboBox1.Text = null;
comboBox1.Text = "hoge";


そうすれば、多少余分なTextChangedイベントが発生しますが、
一応キャッチすることはできます。
Cow
会議室デビュー日: 2004/03/26
投稿数: 8
投稿日時: 2004-03-27 18:46
色々ありがとうございました。おかげさまで、何とかなりそうです。
感謝いたします。
1

スキルアップ/キャリアアップ(JOB@IT)