§11 ファイル処理(1)3 | プログラミング実習 |
【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 の既定位置に配置され、フォームのサイズとして指定された大きさになる。
§11 ファイル処理(1)3 | Copyright©2008 Hiroshi Masuda |