投稿者 るきお  (社会人) 投稿日時 2011/9/20 13:16:16
こんにちは。

たかくんさんのプログラムは画像をファイルから読み込むFromFileメソッドを使っているので、このままだとファイルがないとエラーになります。

リソースに登録する方法、リソースからファイルを呼び出す方法はいくつかありますが、手軽なものを1つ紹介します。

・まず、ソリューションエクスプローラーでMy Projectをダブルクリックします。
・次に、リソースページで「リソースの追加」の右の小さな▼をクリックして、「既存のファイルの追加」を選択し、どこでもよいのですがWindows7.jpgを指定します。
・プログラムを次のように書きます。
  
Dim p As New PictureBox
p.SizeMode = PictureBoxSizeMode.StretchImage
p.Image = My.Resources.Windows7
Me.Controls.Add(p)


なお、私の好みのやり方はリソースを使わないやり方で、1つのフォルダー(たとえばMyPG)にexeファイルとImageフォルダーを作り、Imageフォルダー中に画像を入れます。プログラムを移動するときはMyPGフォルダーごと移動するようにして、プログラム内での画像ファイルの指定はApplication.StartupPathを起点に指定します。
こうすると後から画像を差し替えるのが楽だったり、第3者に配布した後はその第3者が自分の好みの画像に置き換えることも簡単にできたりしてより楽しんでもらえる点が好みの理由です。
ファイル数が増えるのがいやだったり、逆に簡単に置き換えてもらいたくない場合などはこの手法は全然ダメで、たかくんさんが目を付けたようにリソースを使う方がベストになります。一般的にもリソースを使っている人の方が多数派のように見えます。