- トロ
- 常連さん
- 会議室デビュー日: 2006/05/31
- 投稿数: 31
|
投稿日時: 2007-07-30 13:28
VB.NETでWindowsアプリケーションで開発をしています。
@コンボボックスはリストより選択されている状態
Aドロップダウンし、その状態のままDeleteボタン押下してテキストを消去
Bコマンドボタンでイベント発生
この時に、表面上コンボボックスのテキストは消えて見えるのですが
コンボボックス.Textで取得すると@の文字列が取れます。
なぜ、このような現象が起こるのかご存知の方がおられましたら
ご教授下さい。
|
- トロ
- 常連さん
- 会議室デビュー日: 2006/05/31
- 投稿数: 31
|
投稿日時: 2007-07-30 13:44
書き忘れました。
コンボボックスはDataSourceにDataSetを
ValueMemberとDisplayMemberが設定されています。
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2007-07-30 17:23
何か他のイベントでテキストの値を書き換えたりとかしていませんか?
こんなコードを書いてみたけれど、テキストを削除したら何も表示されませんでした。
コード: |
|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim source As New DataTable("table")
source.Columns.Add(New DataColumn("text"))
source.Columns.Add(New DataColumn("value"))
source.Rows.Add("あ", "a")
source.Rows.Add("い", "i")
source.Rows.Add("う", "u")
source.Rows.Add("え", "e")
ComboBox1.DataSource = source
ComboBox1.DisplayMember = "text"
ComboBox1.ValueMember = "value"
ComboBox1.SelectedValue = "i"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(ComboBox1.Text)
End Sub
|
_________________ かるあ のメモ と スニペット
|
- トロ
- 常連さん
- 会議室デビュー日: 2006/05/31
- 投稿数: 31
|
投稿日時: 2007-07-30 17:41
かるあさん返答ありがとうございます。
引用: |
|
かるあさんの書き込み (2007-07-30 17:23) より:
何か他のイベントでテキストの値を書き換えたりとかしていませんか?
こんなコードを書いてみたけれど、テキストを削除したら何も表示されませんでした。
コード: |
|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim source As New DataTable("table")
source.Columns.Add(New DataColumn("text"))
source.Columns.Add(New DataColumn("value"))
source.Rows.Add("あ", "a")
source.Rows.Add("い", "i")
source.Rows.Add("う", "u")
source.Rows.Add("え", "e")
ComboBox1.DataSource = source
ComboBox1.DisplayMember = "text"
ComboBox1.ValueMember = "value"
ComboBox1.SelectedValue = "i"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
MessageBox.Show(ComboBox1.Text)
End Sub
|
|
かるあさんのコードをコピペさせて頂いて検証したのですが、やはり再現します。
再現手順
@F4でプルダウンリストを表示
ADeleteキーでテキストを削除
Bプルダウンリストが表示された状態のままButton1をクリック
ここで、コンボボックスのテキストは空白なのに@のTextが返されます。
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2007-07-31 00:05
引用: |
|
トロさんの書き込み (2007-07-30 17:41) より:
^
再現手順
@F4でプルダウンリストを表示
ADeleteキーでテキストを削除
Bプルダウンリストが表示された状態のままButton1をクリック
ここで、コンボボックスのテキストは空白なのに@のTextが返されます。
|
うーん、うち(Vista)では再現しませんね。
OSと.NET Framework のバージョンはどうなりますか?
コードを試したのは新しくプロジェクトを作成して試しましたか?
切り分けにまずは最小構成で問題が発生するか確認する必要があります。
_________________ かるあ のメモ と スニペット
|
- トロ
- 常連さん
- 会議室デビュー日: 2006/05/31
- 投稿数: 31
|
投稿日時: 2007-07-31 14:37
返信が遅くなりました申し訳ございません。
OSはWindows XP
.NET Framework は1.1です。
新しくプロジェクトを作成してテストしました。
|
- かるあ
- ぬし
- 会議室デビュー日: 2003/11/16
- 投稿数: 1190
- お住まい・勤務地: センガワ→ムサシノ
|
投稿日時: 2007-08-01 10:19
1.1 のコンボボックスだと確かに発生しますね。
2.0 では発生しないのでバグ...なのかなぁ
どうもキー操作でアイテムを変更したときに SelectedItem が変更されないのが問題っぽいですね。
とりあえず、 TextChanged のタイミングでコンボボックスを Focus してやると最新のテキストを認識しましたが、これはこれで何か問題がおきそうです。
_________________ かるあ のメモ と スニペット
|
- トロ
- 常連さん
- 会議室デビュー日: 2006/05/31
- 投稿数: 31
|
投稿日時: 2007-08-01 13:20
バグですかぁ・・・。
TextChangedで試してみます。
ありがとうございました。
|