§11 ファイル処理(1)3 プログラミング実習
 back next 

【4】 ウィンドウの設定

 このプログラムが画面上のどの位置に表示させるかは、me.topプロパティと me.leftプロパティで位置情報を設定する。このプログラムが終了するとき、現在の位置情報をファイルに保存し、起動するときに読み込むようにする。位置情報のファイル名は"file.txt"とする

操作 16 プログラムが終了する前に、FormClosing イベントが発生する。このイベントに対応するメソッドで表示位置のデータを保存する。
 コードウィンドウで、クラス名に「(Form1 イベント)」、メソッド名に「FormClosing」を選択する。メソッドを次のように作成する。

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Dim pt As String
        pt = Me.Left & "," & Me.Top    '保存する位置情報(x,y)
        Try
            My.Computer.FileSystem.WriteAllText("file.txt", pt, False)
        Catch ex As Exception
            MsgBox("ファイルに書き込めませんでした。")
        End Try
    End Sub

表示位置のデータは、x(Me.Left)、y(Me.Top)の順にカンマで区切って保存する。
結果 実行して、適当な位置にウィンドウを移動してから終了する。file.txtをメモ帳などで開いて内容を確認する。位置情報ファイルfile.txtは「実習11ファイル処理1\bin\Debug」フォルダ内にある。

操作 17 プログラムを起動すると、Load イベントが発生する。このイベントに対応するメソッドで表示する位置情報のファイルを読み込む。
 コードウィンドウで、クラス名に「(Form1 イベント)」、メソッド名に「Load」を選択する。メソッドを次のように作成する。

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Dim pt As String, pn As Integer
        Try
            pt = My.Computer.FileSystem.ReadAllText("file.txt")
        Catch ex As Exception
            MsgBox("ファイルが読み込めませんでした。")
            Exit Sub    'メソッドを抜ける
        End Try
        pn = InStr(pt, ",")    'カンマの位置
        Me.Left = Val(Mid(pt, 1, pn - 1))    'カンマより前
        Me.Top = Val(Mid(pt, pn + 1))        'カンマの後ろ
        MsgBox(Me.Left & "/" & Me.Top)        '確認用(確認後コメントアウト)
    End Sub

コメントアウトとは、シングルクォーテーション(')を付けてコメントにし、実行されないようにすることである。
結果 実行すると、前回終了した位置にウィンドウが表示される。

操作 18 「ファイル処理1\bin\Debug」フォルダ内にあるファイルfile.txtを削除してから実行する。

結果 「ファイルが読み込めませんでした。」とメッセージが表示される。

操作 19 プログラムを終了させてから、もう一度、実行する。

結果 メッセージは表示されない。プログラム終了時にfile.txtが作成されたからである。


【プログラム起動時のウィンドウの位置】
 位置情報のファイルfile.txtがなくてもウィンドウは表示される。フォームには、起動時の位置を設定するStartPosition プロパティがある。
 このプロパティのデフォルト値は、WindowsDefaultLocation となっているので、Windowの既定位置に表示される。
CenterParent  フォームは、親フォームの境界内の中央に配置される。
CenterScreen  フォームは、現在の表示の中央に配置され、フォームのサイズとして指定された大きさになる。
Manual  フォームの位置は、Location プロパティによって決定される。
WindowsDefaultBounds  フォームは Windows の既定位置に配置され、Windows の既定により決定されている境界を持つ。
WindowsDefaultLocatio  フォームは Windows の既定位置に配置され、フォームのサイズとして指定された大きさになる。


 back next 
 §11 ファイル処理(1)3 Copyright©2008 Hiroshi Masuda 

 

 

inserted by FC2 system