2015-08-04

PowerShellでユーザーフォームを作る - ピクチャーボックス編 -

PowerShellでは、ユーザーの好みに合わせて、独自にフォームを作成することができます。

以前の投稿で、インプットボックスやメッセージボックスをご紹介しましたが、それは非常にシンプルなものであり、使い勝手が良い反面、自由度が低いものでした。

過去の投稿はこちら↓↓
【PowerShellでInputBoxを使用する】
【PowerShellでMessageBoxを使用する】


ユーザーフォーム 8回目は「PowerShellでユーザーフォームを作る - ピクチャーボックス編 -」です。


   ユーザーフォーム 1回目 【PowerShellでユーザーフォームを作る - 基礎編 -
   ユーザーフォーム 2回目 【PowerShellでユーザーフォームを作る - オプション紹介 -
   ユーザーフォーム 3回目 【PoweShellでユーザーフォームを作る - リストボックス編 -
   ユーザーフォーム 4回目 【PowerShellでユーザーフォームを作る - チェックボックス編 -
   ユーザーフォーム 5回目 【PowerShellでユーザーフォームを作る - ラジオボタン編 -
   ユーザーフォーム 6回目 【PowerShellでユーザーフォームを作る - コンボボックス編 -
   ユーザーフォーム 7回目 【Windows Formでよく使うプロパティまとめ


正直、ピクチャーボックスはまったく使っておりませんので、今回は簡単にご紹介するのみとなりますことを、予めご了承ください。


<今回の完成品>
※画像ファイルは各自でご用意ください。



それでは例文を記述します。


---------ここから-------------------------------------------------------------------------------------
# ユーザーフォームを作る - ピクチャーボックス編 -

# アセンブリの読み込み
Add-Type -Assembly System.Windows.Forms

# フォーム全体の設定
$form = New-Object System.Windows.Forms.Form
$form.Text = "ピクチャーボックス"
$form.StartPosition = "CenterScreen"
$form.TopMost = $True

# ピクチャーボックスを作る
$PictureBox = New-Object System.Windows.Forms.PictureBox

# 画像ファイルの指定
$img = [system.drawing.image]::FromFile("C:\Pictures\dog.jpg")

# ピクチャーボックスのサイズ = 画像のサイズ
$PictureBox.ClientSize = $img.Size

# フォームのサイズ = 画像のサイズ
$form.ClientSize = $img.Size

# ピクチャーボックスへ画像ファイルの埋め込み
$PictureBox.Image = $img

# フォームへピクチャーボックスの埋め込み
$form.Controls.Add($PictureBox)

# フォームを表示
$form.ShowDialog()
---------ここまで-------------------------------------------------------------------------------------
上記内容をコピーし、PowerShell ISEに貼り付けて、実行してみてください。


それでは解説していきます。
また過去の記事で解説した部分については割愛致します。

内容をご確認いただきたい場合は ユーザーフォーム - 基礎編 - をご覧ください。


*****解説*********************************************************

# ピクチャーボックスを作る
$PictureBox = New-Object System.Windows.Forms.PictureBox

ピクチャーボックスは、WindowsフォームのPictureBoxクラスを使用します。 


# 画像ファイルの指定
$img = [system.drawing.image]::FromFile("C:\Pictures\dog.jpg")

ここでは、System.Drawing名前空間~ImageクラスのFromFileメソッドを使用し、画像ファイルを指定しています。
この他にも、同名前空間~Bitmapクラスを使用し、次のように記述することもできます。

$img = New-Object System.Drawing.Bitmap("C:\Pictures\dog.jpg")

これはお好みです。お好きな方で記述してください。


# ピクチャーボックスのサイズ = 画像のサイズ
$PictureBox.ClientSize = $img.Size

ここでは、ClientSizeプロパティを用いて、ピクチャーボックスのサイズと画像ファイルのサイズが同じになるよう設定しています。


# フォームのサイズ = 画像のサイズ
$form.ClientSize = $img.Size

ここでも同様に、フォームのサイズと画像ファイルのサイズが同じになるよう設定しています。

フォームのサイズを画像ファイルより大きくしたい場合は具体的に数値で指定すればOKです。
例えば、今回使用した画像ファイルの大きさを確認したところ、300✕168となっていました。
なので、 $form.ClientSize = $img.Size の部分を $form.Size = "350,250" に書き換えたところ、次のように表示されました。




# ピクチャーボックスへ画像ファイルの埋め込み
$PictureBox.Image = $img

ここでは、PictureBoxクラスのImageプロパティと、先に指定している画像ファイルを結びつけています。

***********************************************************************************

解説は以上となります。

実際、ピクチャーボックスってどんな場面で使われるんでしょうか?
読者様の中で「こういうときに使うと便利だよ~」という意見がありましたら、参考にさせていただきますので、ぜひコメントをお寄せください。

=======================================================================
本投稿に関する疑問や質問には可能な限りお答えさせていただきます。
お気軽にコメントやメールをお送りください。
(リクエストも歓迎します)
メール:tkk-powershell@gmail.com
また、間違いのご指摘・アドバイス等も歓迎いたします。
=======================================================================
Google+、Twitterで更新情報をお届けしています!
ぜひフォローをお願い致します!           
=======================================================================
スポンサーリンク


0 件のコメント:

コメントを投稿

疑問・質問・リクエスト お気軽にどうぞ (^O^)/