作成2013.02.21
- 「Microsoft Visual Basic 2010 Express」の起動
「Microsoft Visual Basic 2010 Express」を起動すると「作業の開始」_「学習」を選択すると4個のチュートリアルが表示されます。非常に丁寧に解説されており、容易にアプリケーションを作成できます。
- チュートリアル 1の完成ファイル
チュートリアル 1: ピクチャ ビューアーの作成の解説とおりに作業を実施すると、プロジェクトファイル群とセットアップファイル群が完成します。
完成ファイルは以下からダウンロードできます。
ダウンロード後は解凍してから使用してください。
[チュートリアル 1の完成ファイル]をダウンロードする。
解凍するとPictureViewerフォルダー内に「PictureViewer-pj」と「PictureViewer-setUp」フォルダーがあります。
「PictureViewer-setUp」フォルダー内の「setup.exe」をダブルクリックすると ピクチャ ビューアーアプリが設定されます。
削除は「コントロールパネル」_「プログラムと機能」から行います。簡単なアプリですのでビルドで作成した実行ファイルをコピー、ペーストしても動作します。実行ファイルをコピー、ペーストした場合、Windowsはアプリの設定を認識できません。
どちらがよいか?は好みによりますが、セットアップファイル群を使用するのが望ましいと思われます。
注(1)PictureViewer-pjフォルダーの「PictureViewer.sln」ファイルをダブルクリックすると「Microsoft Visual Basic 2010 Express」
が起動します。
注(2)メニューの「ウインド」_「ウインドレイアウトのリセット」で標準に戻ります。
注(3)「ソリューションエクスプローラ」ウインドウ内の「Form1.vb」をダブルクリックすると「デザイン」が表示されます。
注(4)メニューの「表示」_「コード」を選択するとコードが表示されます。
- PictureViewerの実行
(1)「スタート」_「すべてのプログラム」_「Microsoft」_「PictureViewe」を選択します。
(2)「Show a picture」ボタンを押します。
(3)OpenFileDialogが表示されますので、画像ファイルを選択し開きます。
(4)選択した画像が表示されます。
(5)最大化ボタンを押すとウインドウは画面いっぱいに広がります。
(6)Strech(CheckBox)のチェックをはずすと縦横比が変化します。
(7)チェックをいれた状態でSet thebackground colorボタンを押すとColorDiaalogが表示されます。
(8)色を選択しOKボタンを押すと背景色が変わります。
(9)Clear the pictureボタンを押すと背景色のみになります。
(10)Closeボタンをおすとプログラムは終了します。
- 新規プロジェクトの作成
(1)新規プロジェクト
新規プロジェクトを作成すると「デザイナー」にはForm1が自動生成されます。Form1は多くのプロパティを持ちます。代表例としては(Name)=Form1、Size=30,30、Text=Form1等があります。PictureViewerでは(Name)=Form1、Size=550、350 、Text=Picture Viewerとしています。
(2) Formコード
Public Class Form1
End Class
が自動生成されます。
- 各種パーツの設定
(1) パーツレイアウト
Form1に各種のパーツをツールボックスから設定します。PictureViewerではTableLayoutPanel、FlowLayoutPanel 、PictureBox、CheckBox、Button、openFileDialog、ColorDialogを設定します。これらのパーツはプロパティで名称や値を変更できます。
(2)パーツイベントコード
Form1内にButton1を設定してダブルクリックするとコードは
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Sub
となります。
(3)コード解説
この関数はButton1_Clickという名称の Privateサブルーチンであり、Button1がクリックされたときイベント処理ルーチンから呼び出されます。イベントを呼び出すルーチンはどこかに存在するはずですが、ブラックボックスでありシステムの一部と考えるべきです。Privateサブルーチンは独自のプログラムからかってに呼び出すことができません。
この関数が呼び出されたとき引数としてByVal sender As System.ObjectとByVal e As System.EventArgsが関数に渡されます。
ByValは引数の値を参照しても良いが、変更してはいけないという意味です。Senderという引数の型はSystem.Objectです。同様にeいう引数の型はSystem.EventArgsです。System.Objectは.NET Framework の全クラスの基本クラスであり、型階層のルートです。EventArgs は、イベント データが格納されているクラスの基本クラスです。
Handlesはプロシージャが特定のイベントを処理することを宣言します。したがってButton1.Clickイベントが発生したときのみ処理されます。
- Public Class Form1の全コード
Public Class Form1
Private Sub showButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles showButton.Click
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Load(OpenFileDialog1.FileName)
End If
End Sub
Private Sub clearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearButton.Click
PictureBox1.Image = Nothing
End Sub
Private Sub closeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closeButton.Click
Close()
End Sub
Private Sub backgroundButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles backgroundButton.Click
If ColorDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.BackColor = ColorDialog1.Color
End If
End Sub
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
Else
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End If
End Sub
End Class
- Private Sub showButton_Clickの解説
Private Sub showButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles showButton.Click
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.Load(OpenFileDialog1.FileName)
End If
End Sub
(1)このルーチンはshowButtonがクリックしたときに実行されます。
(2)OpenFileDialog1.ShowDialog()でOpenFileDialogが表示されます。
(3)OKボタンでOpenFileDialog1.FileNameに選択されたファイル名が保存されます。
(4)OKボタンが押されたならば、 PictureBox1にOpenFileDialog1.FileNameの画像ファイルデータがロードされます。
(5)以上の処理で選択された画像が表示できます。
・非常にわずかな記述で画像表示が可能です。これは「デザイナー」ですでにパーツのプロパティを設定してあるため、「コード」で詳細な設定が不要となっているためです。
・どこにもPublic Class Form1のオブジェクトの構築と破棄の記述がありません。(自動的にブジェクトの構築と破棄が行われるためと思われます。)
・Public Class Form1の構成要素であるパーツの記載が「コード」にはありません。(これは「デザイナー」で設定したパーツ情報が自動的に組み込まれるためと思われます。)
Visual Basic 2010 Expressにおいては、「コード」の記載が単純化されているのが特徴的です。そして、Public Class Form1やPrivate Sub showButton_Clickの基本コードは自動生成されます。
Private Sub showButton_Clickの内部の処理だけ、記載することになります。この例では引数は利用しませんので、OpenFileDialogの処理とPictureBoxの処理だけを記載しています。実際にはOpenFileDialogやPictureBoxの処理は複雑な処理ですが、これらの処理はブラックボックスとして扱い、入力方法とその結果のみを理解すれば良いと思います。
- Private Sub clearButton_Clickの解説
Private Sub clearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles clearButton.Click
PictureBox1.Image = Nothing
End Sub
(1)clearButtonがクリックされるとPictureBox1.Image = Nothingで画像データが消去されます。
- Private Sub closeButton_Clickの解説
Private Sub closeButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles closeButton.Click
Close()
End Sub
(1)Private Sub closeButtonがクリックされるとClose()でプログラムを終了します。
- Private Sub backgroundButton_Clickの解説
Private Sub backgroundButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles backgroundButton.Click
If ColorDialog1.ShowDialog() = DialogResult.OK Then
PictureBox1.BackColor = ColorDialog1.Color
End If
End Sub
(1)Private Sub backgroundButtonがクリックされると処理が実行されます
(2)ColorDialog1.ShowDialog()でColorDialogが表示されます。
(3)OKボタンが押されたならば、PictureBox1.BackColor = ColorDialog1.Colorが実行されます。
- Private Sub CheckBox1_CheckedChangedの解説
Private Sub CheckBox1_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CheckBox1.CheckedChanged
If CheckBox1.Checked Then
PictureBox1.SizeMode = PictureBoxSizeMode.Zoom
Else
PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End If
End Sub
(1)CheckBox1のチェックが変化するとこのルーチンが処理されます。
(2)CheckBox1のチェックがある場合はPictureBox1.SizeMode = PictureBoxSizeMode.Zoomとします。
(3)CheckBox1のチェックがない場合はPictureBox1.SizeMode = PictureBoxSizeMode.StretchImageとします。