- - PR -
comboboxの初期値について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-08-20 16:50
msoです。
まいど質問ばかりで申し訳ありませんが、 また質問があります。 VB.NETでComboBOXを扱っているのですが、DataSourceで ComboBoxの値をセットした際に表示される初期値を空白にしたいと思っています。 現在は
というようにやっているのですが、 初期値にはhoge列の値が表示されます。 空白を表示させるにはどうしたらいいのでしょうか? | ||||
|
投稿日時: 2004-08-20 17:08
さかもと と申します。
フォーム上でコンボボックスが表示された際に、まずどの項目が表示されているか? ということで宜しいでしょうか? 私は以下のように行っています。 ==================================================== '/読み込み時にはコンボボックスの一番上Nullが選択されているようにする cmbA.SelectedIndex = -1 ===================================================== 0が1番目で1が2番目・・・、0番目なら-1 らしいです。 Indexの番号を変えれば何番目の項目が選択されているかどうかを 設定できるようです。 見当違いならすいません。 | ||||
|
投稿日時: 2004-08-20 17:16
Mickyでございます。
ちょっと前に自分も結構調べたり、いじりまわしたりしたのですが、 中々いい方法が見つかりませんでした。 そこで、元になるDataTableのCloneを作成して 最初に表示させたい空白データ行を追加します。 その後に基のDataTableのデータを全てコピーすれば 最初に空白行が表示されます。 全行コピーなのでパフォーマンスに問題があるような気もしましたが ComboBoxに表示するデータですから、膨大な数になるような事もないでしょう。 もっとスマートな方法があったら、自分も知りたいです。(^^; 以前にも同じ様な話題があったような気もするのですが、 今検索したところみつけられませんでした。 | ||||
|
投稿日時: 2004-08-20 17:43
msoです。
さかもとさん SelectedIndex = -1でやってみたのですが、 変わりませんでした。 VS2003で開発をやっているのですが何かあるのでしょうか? Mickyさん 空データを作成してから、全件コピーという方法は最終手段として やろうと思います。 自分の方法が何かおかしいのかもしれないので、もうちょっと 見直してみます。 #SelectedIndex = -1で大丈夫だと思うのになぁ。 | ||||
|
投稿日時: 2004-08-20 18:13
直接参照せず、ビューを取得して、ビューに空白を追加してから、コントロールにバインドさせた・・・ような?
ちょっと記憶が曖昧。ソースも見つからない... | ||||
|
投稿日時: 2004-08-20 18:15
さかもと です。
すいません、私が初心者なもので見当違いな返答でした。 私が取っている方法は読み取ったデータを一件ずつ CommboA.Items.Add("xxx") で追加している為うまくいっているようです。 件数が多くなると少しストレスになりますが、下記のサイトを参考にさせて 頂き対応を取っています。 http://dobon.net/vb/dotnet/control/lbitemsadd.html (URLの提示はこの方法で宜しいのでしょうか・・・?) 何か他のスマートな方法があれば私も知りたいところです・・・。 | ||||
|
投稿日時: 2004-08-20 18:29
msoです
さかもとさんへ selectedindex=-1でもうまくいくケースがありました。 自作コントロールにあるcomboBoxはなぜかうまくいきませんが、 普通にフォーム上にいるものは大丈夫でした。 Jittaさんへ 方法ありがとうございます。 検討させていただきます。 | ||||
|
投稿日時: 2004-08-21 21:20
msoです。
自宅でVS2002を使って、ComboBoxの対応を検討していました。 そこでMSDNのヘルプを見ながら作っていたのですが、MSDNのサンプルの 使い方がうまくわからず悩んでいます。 ComboBoxのDataSourceをヘルプで探していたら下記のソースを MSDNから見つけることが出来ました。 ただ、USStateについてはどのように作ればいいのか分かりません。 なんか見たことのあるデザインパターンパターンっぽいのですが、 まだ理解することが出来ません。 申し訳ありませんが、何をやっているのか教えていただけないでしょうか?
|