2016-12-10 14 views
-2
Private Sub frmPegSolitaire_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    For Each pictire As PictureBox In Me.Controls 
     If Not pictire.Tag.Equals("n") Then 
      pictire.Image = Image.FromFile("peg.png") 
     End If 
    Next 
End Sub 

ここに私のコードは動作しません。私は間違って何をしていますか?コードで画像を読み込む

+2

「*動作しません」と明記してください。 [mcve]を与える。 – jonrsharpe

+0

「うまくいかない」というのは、非常に良い問題の説明ではありません。 _何がうまくいかず、実行しているときに現在何が起こっていますか? –

+0

'System.InvalidCastException'型の未処理例外がQuestion1.exeに発生しました – vkaleri

答えて

1

あなたがそれらの取得のみにフィルタリングする必要があるので、ちょうどPictureBoxes以上あり、そのコレクションで
Me(おそらくフォーム)に含まれるすべてのコントロール上をループしている:
は(OfTypeを参照してください)

Private Sub frmPegSolitaire_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    For Each pictire As PictureBox In Me.Controls.OfType(Of PictureBox) 
     If Not pictire.Tag.Equals("n") Then 
      pictire.Image = Image.FromFile("peg.png") 
     End If 
    Next 
End Sub 
+0

あなたは私よりも速かったです。 :) –

+0

'System.NullReferenceException'の未処理例外がQuestion1.exeに発生しました 追加情報:オブジェクト参照がオブジェクトのインスタンスに設定されていません。 – vkaleri

+0

@vkaleriあなたのコードのどこかに値が 'Nothing'であるものがあります。私の賭けはいくつかのピクチャボックスになるでしょう。 'Tag'は設定されていません(そして、値として' Nothing'を持っています)。小切手を追加するか、すべてに値を与える – Sehnsucht

関連する問題