- PR -

FormsでのComboboxについて

1
投稿者投稿内容
korry
会議室デビュー日: 2005/04/20
投稿数: 1
投稿日時: 2005-04-20 02:05
WindowsFormsでのコンボボックスについてですが

2画面間で遷移するFormで
AAAというformよりBBBというFormを表示するときに
BBBFormのLoadイベントで
ADO.NETを使用しDatasetにデータを取得し
取得したDatatableをDatasourceに
取得したdatatableのAというカラムとBというカラムを
それぞれDisplayMember、ValueMemberに設定し
selectedindexに-1を設定しました
ここで設定するのは表示時に未選択状態にしたいためです。
Datasourceを設定するとSelectedindexが0になってしまうため
あえてSelectedIndexに-1を設定しています。
(ここまですべてBBBのLoadイベントです)

Loadイベント内では確かにselectedindexが-1なのですが
Loadイベントを抜けた直後にコンボボックスの
selectedindexが0になってしまいます。

form bbb = new formbbb;
bbb.show
---この位置ではselectedIndexが0になっています---


bbbの内部のloadイベントハンドラ内では確かに-1なのですが
イベントハンドラを抜けshowメソッドをCallしているところで
確認すると0になってしまっているのです。
loadイベント以外では何もしていないので
.newtframework側で何かしているのかとも考えています


BBB画面では起動時にはCombobox未選択状態で表示したいのですが
なぜかDataSourceの0番目のアイテムが選択された状態になってしまいます

このような事象に遭遇された方や
なにか情報をお持ちの方教えていただければと思います。

以上、よろしくお願いします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2005-04-20 19:00
すみません。理解できません。こんな感じでしょうか?

質問事項:
 DataSourceを設定したComboBoxで、フォームを初期表示したとき、未選択の状態にする方法

実施手順:

  • FormAとFormBがあり、FormAがFormBを表示する
  • FormBのLoadイベントで、ADO.NETにてデータを取得する
  • フォーム上にあるComboBox1に、DataSet内のテーブルを、DataSourceプロパティに設定
  • DisplayMemberにColumnA、ValueMemberにColumnBを設定
  • SelectedIndexプロパティは、-1に設定
    これは、初期表示時には未選択状態としたいため
    DataSourceプロパティに値を設定すると、SelectedIndexが0となるため、その後にSelectedIndexを-1に設定し直す


問題点:
この後、Loadイベントハンドラを抜けると、せっかく-1に設定したSelectedIndexプロパティが、0になっている。
FormAの、formB.Show()手前までは、-1になっています(デバッグで、クイックウォッチにて確認)。
画面の初期表示では未選択(SelectedIndexが-1の状態)としたいが、どのようにすればよいか。

_________________
iStation
大ベテラン
会議室デビュー日: 2003/12/08
投稿数: 158
投稿日時: 2005-04-20 19:20
試していないので間違っているかもしれませんが、
ComboBox の DropDownStyle を DropDownList ではなくて DropDown にするとか...
iStation
大ベテラン
会議室デビュー日: 2003/12/08
投稿数: 158
投稿日時: 2005-04-20 19:20
試していないので間違っているかもしれませんが、
ComboBox の DropDownStyle を DropDownList ではなくて DropDown にするとか...
1

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