画像表示
■バージョン情報
VisualStudio 2015
■PictureBox
PictureBoxは画像を簡単に表示することができるツールです。
ツールボックスから「PictureBox」を選択し、
PictureBoxを選択状態にしてからForm1ウィンドウをクリックして下さい。
そうすると以下のようにForm1に「PictureBox」が設置されました。
●画像描画
PictureBoxでは汎用的ではありませんが、
コードを書かずに画像を表示させることが可能です。
その方法プロパティウィンドウに画像情報を設定する方法です。
画像の設定は画像リソースを直接指定するか、
画像のファイルパス(ファイル名込み)を指定するかのどちらかです。
前者は「Image」後者は「ImageLocation」で指定します。
前者の場合はリソースをプロジェクトにインポートする必要があるので、
今回は後者のファイルパス指定で行います。
●画像サイズモード
PictureBoxにはPictureBoxの領域内にどのような形で
読み込んだ画像を表示するかを設定することができます。
この設定はプロパティのSizeModeで行うことができ、
4種類の設定から選択可能です。
・Normal
PictureBoxの左上表示する、画像の大きさはそのまま使用する
PictureBoxの領域が足りてなかったら途中で切れる
・StretchImage
PictureBoxの大きさに合わせるように画像が拡縮する
・AutoSize
PictureBoxの大きさを画像の大きさと同じにして表示する
・CenterImage
画像をPictureBoxの中央に表示する。
画像の大きさは変更しない
・Zoom
PictureBoxの大きさに合わせて画像の拡縮を行う
StretchImageとの違いは画像の縦横の比率を保持して拡縮される
■Button
Buttonは何らかの処理のトリガとなるツールです。
今回はPictureBoxに描画する画像を選択するために使用します。
PictureBoxと同じようにツールボックスからButtonを選択し、
選択状態にしたあと、Form1をクリックすることで配置可能です。
●クリック時のイベント処理
ボタンはクリックされた際の動作するのが基本です。
この部分の処理を追加するにはForm1に追加したボタンを
ダブルクリックするだけクリックイベントの関数が追加されます。
この関数内に以下の一文を追加して実行してみてください。
MsgBox("ボタンがクリックされました")
ボタンをクリックすると以下のようなメッセージが表示されます。
●ボタンの文字列変更
ボタンの文字は最初の「Button**(**は数字)」となっています。
これを変更する場合プロパティの「Text」の内容を変更することで
文字を変更することが可能です。
■OpenFileDialog
OpenFileDialogは以下のようなWindowsの画像表示でよく見かけるファイルダイアログです。
このFileDailogもForm1に設定することで使用可能です。
ただ、PictureBoxやButtonとは異なり、Form1のウィンドウに何かが追加されるわけではなく、
以下のようにFormに関連付けているということが分かるな表示となります。
●使用方法
OpenFileDialogはボタンのクリックなど、何らかのトリガから
表示を行うことが基本となっているので、コードに表示処理を記述します。
以下の一文をボタンクリック時の関数に追加します。
※Buttonで追加したMsgBoxの表示の一文はコメントアウトして下さい。
' OpenFileDialog表示
OpenFileDialog変数名.ShowDialog()
追加して実行するとボタンクリック時にファイルダイアログが表示されます。
●詳細設定
ファイルダイアログには様々な情報を設定できます。
今回は初期ファイル名、フィルターを行っています。
・読み込みファイル名
プロパティ名 => FileName
ファイルダイアログの初期ファイルの設定
・フィルター
プロパティ名:
Filter
内容:
フィルターはファイルの種類を指定する
・書式
"表示内容 | 拡張子"
・具体例
' PNGとJPGとBMPのみを許可
"PNG(*.png) | *.png; | JPG(*.jpg) | *.jpg; | BMP(*.bmp) | *.bmp"
●ダイアログの結果
ダイアログの結果を使いPirctureBoxにファイル名を伝える必要がありますが、
必ずしも画像が選ばれているとも限らないので「OKボタン」を押しているかだけでも
判断する必要があります。
ダイアログの結果はShowDailogの戻り値として返って来るので
それを利用して処理判断します。
' ダイアログ表示
Dim dialog_result As DialogResult
dialog_result = LoadDialog.ShowDialog()
' 開くボタンなら描画
If dialog_result = DialogResult.OK Then
End If
●PictureBoxに反映
ダイアログの結果が開くで設定されているとOpenFileDialogのFileNameに
ファイル名が代入されているので、それをPicturePoxの
ImageLocation変数に代入します。
Picture.ImageLocation = LoadDialog.FileName
これで指定した画像がPictureBoxで描画されます。