コンボボックスのインデックスを設定するには?

解決


  2006-06-23 02:11:11  No: 131998

こんにちは良です。本当にいつもお世話になっております。

動作環境はWinXP VB.NET2003です。コンボボックスに
リストの値を設定したいのですがどうしたらいいでしょうか?
リストの値を取得するには
me.label1.text = me.combobox1.SelectedIndex
で出るんですが設定の仕方がうまくできません。

VB6.0ですと
me.combobox1.ItemData(Index) = 設定したい番号
でできるんですが・・・
ネットで調べたんですがなかなか回答が見つからなかったので
ご享受のほうよろしくお願いいたしますm(__)m


特攻隊長まるるう  2006-06-23 03:00:32  No: 131999

こんな感じ。。。
http://madia.world.coocan.jp/cgi-bin/VBBBS/wwwlng.cgi?print+200508/05080010.txt


  2006-06-23 03:15:03  No: 132000

>特攻隊長まるるうさん

いつもありがとうございます!
別のクラスを用意してDirectCastかCtypeで型変換をして
そのクラスにデータを保持するんですね。

VB6.0よりVB.NETのほうが処理がややこしいですね。
いつもすみませんm(__)m
ありがとうございました!


特攻隊長まるるう  2006-06-23 03:30:20  No: 132001

>VB6.0よりVB.NETのほうが処理がややこしいですね。
そうですね(^^)

ただ、コンボボックスの過去ログではなく、リストボックスの
過去ログのリンクを貼ったのは、応用の可能性に気づいて
欲しかったからです。

クラスを用意するということは、そこに関数を自由に追加
できると言うことです。単純に対応するインデックスのみを
覚えるのなら、[VB6.0]の形の方が簡単で便利かもしれません。
しかし、複数の複雑なデータを扱いだすとクラスを登録
できる便利さが良く分かります。

しかも、他のコントロールにも、共通した概念で設計されて
いるものがあるので、他のコントロールに応用できたりも
します。

ま、覚えて損は無いテクニックです。頑張って自分のものに
してみてください。


  2006-06-23 03:40:57  No: 132002

こんばんは良です。

>特攻隊長まるるうさん

本当にいつもありがとうございます!

他のクラスにもってしまえばコンボボックスだけでなく
他のコントロールにも応用できるんですね!

頑張って習得したいと思います。

余談ですが型変換ってDirectCastとCtypeの2種類がありますが
ヘルプを見ますとCtypeのほうがDirectCastよりも変換の
幅が大きい(Ctypeでは多少型が違っていてもおおもとで
型があっていれば成功しますがDirectCastはまったく
型があっていないと型変換に成功しない)
けどDirectCastのほうが処理が少し早いみたいですし
ソースとしてもそちらのほうがスマートですよね?


特攻隊長まるるう  2006-06-23 21:04:57  No: 132003

>ソースとしてもそちらのほうがスマートですよね?
スマートって言われても何のことだか分かんない(‾△‾)
http://d.hatena.ne.jp/keyword/%A5%B9%A5%DE%A1%BC%A5%C8
http://glossary.tank.jp/t0BEC.html

例えば、
http://madia.world.coocan.jp/cgi-bin/VBBBS2/wwwlng.cgi?print+200606/06060071.txt
…で書いた sample1 sample2 sample3 でスマートなのはどれ?
初心者は9分9厘 sample2 って答えるんじゃないの?
兎に角、コード量が少なければスマートなんだったら DirectCast より Ctype のほうが
コード上の文字数は少ないよ?w

いいコードは見た目にきれいで、簡潔な場合が多いという傾向はあると思う。
でも、見た目がきれいで簡潔だからって、いいコードとは限らない。

見た目にこだわるのにも意味はあるけど、それで目的の処理を十分に
果たせないのでは本末転倒。目的に合ってるか?中身が一番重要だと
思います。
・初心者は見た目しか分かりません。
・中級者は中身が一番重要だと思っています。
・上級者は見た目と中身が関係してることを知っています。
・それらを超越した、自分が重要だと思うことのみに執着するマニ○とかフェ△とか。。。
…恋愛の建て前と一緒だね(滅
 # 現実はスイッチが入るか入らないかの違いな気がしますが。。。

マニアな人間に『スマートですよね?』の質問は愚問でしょう。
…そもそもの判断基準が違うからね?w
まぁ、まだ正常な世界に居る初心者へのアドバイスとしては
『中身を知って、より目的に合ってると思うほうを選んでみよう』
です。それが正解かどうかは10年後くらいに自分で判断して
ください。

DirectCast に関してはリンク先で解説してあるし、それが自分の
目的に合ってると思えば採用すれば良いでしょう。だからと言って
その内容がどんな条件においても正解とは限らないのです。通用しな
かったり、更にいいものに出会ったら、どうぞ乗り換えてくださいm(__)m

>型変換ってDirectCastとCtypeの2種類ありますが
ヘルプで型変換(キャスト)を調べれば、CInt CStr ...の『キャスト式』
ToString ToInt32 ...の『メソッド』など、それこそ無数にありますがw
 # 言いたい事は十分伝わります。細かなつっこみですので無視して
 # ください(^^)『型の変換』『明示的な変換』とかいうページもあるから、
 # 幾つかのページには目を通してみてください。


  2006-06-24 11:01:59  No: 132004

こんばんは良です。
う〜んスマートって言う言葉の意味ってむずかしいですね。
というよりリンク先みましたがたくさん意味があるんですね。
コードに一番良い答えなんてないんですね。
確かに私はステップ数が少ないコードがスマートなコード
と思っていましたがそういうわけでもないんですね。
10年後ぐらいに自分がその答えを私自身みつけ出せればいいですね。

確かにCint  CShort  Cstr  Tostring・・・・等のものも
型変換ですね。失礼いたしましたm(__)m
コードっておくが深いですね。いつか特攻隊長さんくらいの
スキルを身につけたいです。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加