2章:チュートリアル 1: ピクチャ ビューアーの作成

    作成2013.02.21

  1. 「Microsoft Visual Basic 2010 Express」の起動
     「Microsoft Visual Basic 2010 Express」を起動すると「作業の開始」_「学習」を選択すると4個のチュートリアルが表示されます。非常に丁寧に解説されており、容易にアプリケーションを作成できます。


  2. チュートリアル 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)メニューの「表示」_「コード」を選択するとコードが表示されます。


  3. 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ボタンをおすとプログラムは終了します。


  4. 新規プロジェクトの作成
    (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
    が自動生成されます。


  5. 各種パーツの設定
    (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イベントが発生したときのみ処理されます。


  6. 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
    


  7. 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の処理は複雑な処理ですが、これらの処理はブラックボックスとして扱い、入力方法とその結果のみを理解すれば良いと思います。


  8. 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で画像データが消去されます。


  9. 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()でプログラムを終了します。

  10. 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が実行されます。


  11. 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とします。







3章:チュートリアル 2: 迷路の作成に行く。

トップページに戻る。