0

VS2008 と VB.NET Compact Framework 3.5 を使用してプロジェクトを開発しています。イメージリストから写真をロードするピクチャーボックスがあります。Imagelist にインデックス 0、1、2 の 3 つの画像があります。次のようなif文でコードを書く方法はありますか?

フォームが読み込まれると:

picturebox.image =  imagelist1.Images(0) 'give picture box an initial value

...

If picturebox.image = imagelist1.Images(0) then
    'do something
elseif picturebox.image = imagelist1.Images(1) then
    'do something
elseif picturebox.image = imagelist1.Images(2) then
    'do something
End If

次のように、「=」の代わりに Is を使用しようとしましたが、それでも機能しません。デバッグでは、ステートメントは false を返すため、実行されることはありません。

If picturebox.image Is imagelist1.Images(0) then
    'do something
End If

前もって感謝します。

4

1 に答える 1

2

ピクチャボックスを更新するときは、現在のインデックスを .Tag プロパティに保存して、評価できるようにします。

picturebox.image =  imagelist1.Images(0) 
picturebox.Tag = 0

後で:

Select Case picturebox.Tag
    case 0             ' same as If picturebox.Tag = 0 then
      'do something
    Case 1
      'do something 1
    Case 2
      'do something 2
End Select

注: case ステートメントは、If ステートメントに似ていますが、タイピングが少なく、読みやすくなっています。

于 2013-10-22T22:06:11.063 に答える