- PR -

コンボボックス

1
投稿者投稿内容
chara
常連さん
会議室デビュー日: 2004/03/09
投稿数: 25
投稿日時: 2004-05-22 21:27
お世話になります。
VB.NET 2003で開発を行っております。

Hashtableに格納したデータを
コンボボックスに一度に格納したいのですが、
以下の方法では間違っているようです。

Private hash As New Hashtable
hash .Add("A", "a")
hash .Add("B", "b")
'キー A B をコンボに格納したい
Me.ComboBox1.Items.AddRange(hash.Keys.SyncRoot)

エラー;指定したキャストが有効ではありません。

どのようにすれば格納できるのでしょうか。
ご存知の方、よろしくお願いいたします。
なちゃ
ぬし
会議室デビュー日: 2003/06/11
投稿数: 872
投稿日時: 2004-05-22 22:48
引用:

ちゃらさんの書き込み (2004-05-22 21:27) より:
お世話になります。

'キー A B をコンボに格納したい
Me.ComboBox1.Items.AddRange(hash.Keys.SyncRoot)


な、なにをやろうとしてるんでしょうσ(^_^;)?
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-22 22:52
諸農です。

質問されている内容と、書かれているコードの
意味が私の頭の中で一致しないのですが、
何故、SyncRootをAddRange()の引数に指定して
いるのでしょうか?

AddRange()の引数はobject型の配列を
指定するようになってますね。。。

引用:

Private hash As New Hashtable
hash .Add("A", "a")
hash .Add("B", "b")



この後のコードは、
1. hashの要素数分だけ配列を確保。
2. hash.KeyからCopyToでキー値のコピー。
3. 配列をAddRange()に引き渡す。
と言った感じになると思います。

ただし、Hashtableでは、追加された要素が格納
された順番通りに並んでいる保証はありませんので、
オブジェクト配列にコピーした後に必要に応じてソ
ートを行った方がいいと思います。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

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