2

まず第一に、私は vb 2010 を初めて使用していますが、これまでのところ、vb でできることを楽しんでいます。そうは言っても、現在のプロジェクトで問題が発生しました。

基本的に私はタイマーを作成しましたが、すべてがその部分でうまく機能します。私の問題は、タイマーが分/秒ごとに .png をロードし、次のように画像をリンクしていたことにあります。

Picturebox1.Image = Image.Fromfile("C:\timer\images\" & minutes.text & ".png")
Picturebox2.Image = Image.Fromfile("C:\timer\images\" & seconds.text & ".png")

そのため、別の PC でこれを実行すると、そのコンピューターにはローカルにこれらのファイルがなく、.png ファイルが見つからないため、プログラムはエラーで終了するため、そのコードのビットは役に立たなくなりました。

オンラインで少し検索したところ、リソース ファイルからの読み取り方法に関するいくつかのサイトとビデオ チュートリアルが見つかりました。しかし、そうすることで、私はそれを適切に機能させることができませんでした.

だから、これは私がここで見つけたものです:

Picturebox1.image = My.Resources.minutes.text
Picturebox2.image = My.Resources.seconds.text

vb 2010で2つのエラーが発生しているため、このコードが間違っていることはわかっています。これを機能させる唯一の方法は、ファイル名を指定することです。しかし、私がやりたいのは、「minutes.text」と「seconds.text」で whats を使用してファイル名を指定することです。

これを回避する方法はありますか?または、これを行うには一連の if ステートメントを使用する必要がありますか?

例:

If minutes.text = 1 Then
picturebox1 = My.Resource._1
End If
If seconds.text = 12 Then
Picturebox2 = My.Resource._12
End If

簡単な修正があれば、たくさんの if ステートメントを実行する必要はありません。だから私は助けを求めてここに来ました。

4

2 に答える 2

3

私はあなたがこれを探していると思います:

Dim currentMin as string = "_" & minutes.text ' it would look something like this: _1
picturebox1.Image = CType(My.Resources.ResourceManager.GetObject(currentMin), Image)

Dim currentSec as string = "_" & seconds.text
picturebox2.Image = CType(My.Resources.ResourceManager.GetObject(currentSec), Image)
于 2012-01-07T08:24:09.613 に答える