dポイントプレゼントキャンペーン実施中!

VB2010で、以下のような書き方でリソースファイルの選択を行っているのですが、
リソースファイルを増やすたびにコードを書き足さなければならず非効率的です。
リソースが10個・20個と増えてくるとその分だけコードが長くなります。
ほかに方法はあるのでしょうか?

なお、今はVB2010が入っていないパソコンから投稿しているので
コードを思い出しながら書いています。
たぶん大丈夫だと思いますが、もしかしたらエラーが発生するかもしれません。

Private ResourceID As Integer

(中略)

Dim bmp As Bitmap
Select Case ResourceID
Case 1 : bmp = My.Resources.picture1
Case 2 : bmp = My.Resources.picture2
Case 3 : bmp = My.Resources.picture3
End Select

Select Case ResourceID
Case 1 : TextBox1.Text = My.Resources.text1
Case 2 : TextBox1.Text = My.Resources.text2
Case 3 : TextBox1.Text = My.Resources.text3
End Select

A 回答 (1件)

内容を見ていたらpicture、textそれぞれ、My.Resourcesに1個定義するだけでいいのでは?


と思いました。
(やり方)
My.Resources.pictures = "c:\test1.bmp,c:\test2.bmp,c:test3.bmp"
のように定義しておいて、

dim wk() as string
wk()= split(My.Resources.pictures,",")
'※splitの文法忘れたのでマニュアルみてください。
bmp = wk(ResourceID)

みたいにすれば実現できると思います。
但し、フォルダ名がやたら長いとかで文字数制限に引っかからないかどうかは、
My.Resourcesの1項目あたりに格納できる文字数を確認してください。
多分、stringの最大文字数と一緒だったとは思いますが。

この回答への補足

リソースファイルから読み込んでいるようには見えないのですが……。
結局Cドライブにあるファイルから読み込んでいるのと一緒ではないでしょうか?

補足日時:2012/09/26 13:35
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
現在はVBが使えないパソコンから投稿しているため今すぐには試せませんが
成功したら解決と致します。

お礼日時:2012/08/18 07:02

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!