Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
ソリューションエクスプローラ内のファイルについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=2529#CommentId19924
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 ()
投稿日時
2008/8/11 20:28:00
<1>の るきおさんのような構成になっている場合には、
その画像のプロパティで、[出力ディレクトリにコピー]が
どのように設定されているのかによって、 対応方法が異なります。
============================================================
《出力ディレクトリにコピー:常にコピーする》
《出力ディレクトリにコピー:新しい場合はコピーする》
------------------------------------------------------------
上記いずれかが設定されている場合、EXE のあるディレクトリの下に、
NewFolder1 フォルダが展開され、その下に image.jpg ファイルが配置されます。
あとはこれを、るきおさんが書かれておられるように
Dim file As String = System.IO.Path.Combine( _
My.Application.Info.DirectoryPath, _
"NewFolder1\image.jpg")
PictureBox1.Image = Image.FromFile(file)
といったコードで読み込むことができます。
============================================================
《出力ディレクトリにコピー:コピーしない》
------------------------------------------------------------
これが設定されているとimage.jpg はファイルとしては配置されないため、
プログラムから利用するためには、もう一つのプロパティ
《ビルドアクション:埋め込まれたりソース》
を設定する必要があります。埋め込まれたリソースを読みこむには、
Dim file As System.IO.Stream
With System.Reflection.Assembly.GetExecutingAssembly
file = .GetManifestResourceStream("WindowsApplication1.image.jpg")
End With
PictureBox1.Image = Image.FromStream(file)
というコードを書けば OK です。この方法の場合、指定するのが
「NewFolder1\image.jpg」という文字列ではなく
「WindowsApplication1.image.jpg」になる事に注意してください。
============================================================
もうひとつの方法
------------------------------------------------------------
[My Project]を開き、その中の「リソース」タブを設定するというのが
一番簡単な方法です。以下のように、わずか一行のコードで利用できます。
'これだけで、画像クラス(System.Drawing.Bitmap)が得られる
PictureBox1.Image = My.Resources.image
なお、この方法の場合、リソース名にピリオド(.)は使えません。