6.My.Settings を使用して終了時の状態を保存し起動時に設定を反映(04_App_06) (旧、SampleNo.287) |
1.My.Settings を使用して終了時の状態を保存し起動時に設定を反映 2. 3. 4. 5. 6. |
下記プログラムコードに関する補足・注意事項 動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86 Option :[Compare Text] [Explicit On] [Infer On] [Strict On] Imports :追加なし 参照設定:追加なし その他 : : このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので) 必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい) |
1.My.Settings を使用して終了時の状態を保存し起動時に設定を反映 |
まず、MSDN に記載の[Visual Basic 2005 での My.Settings の使用]をご覧になって下さい。 http://msdn.microsoft.com/ja-jp/library/ms379611(VS.80).aspx 1.ソリューションエクスプローラーで、[My Project] をダブルクリックします。 (又は、メニュー→プロジェクト→最下部の***のプロパティ をクリック でも同じ) 2.下記のような画面が表示されるので、左側のタブの[設定]をクリック。 3.上記の設定例にならって (1) 名前 任意の名前で結構ですから、Form の Size を連想するような名前を付けて下さい。 (例では、FormSize) (2) 型 保存したいプロパティ等の型を右のから選んで下さい。 (例では、System.Drawing.Size) (3) スコープ 設定ファイルのスコープ右のから選んで下さい。 (例では、ユーザー) アプリケーション:読み込み専用で、アプリケーションの全ユーザーで共有されます ユーザー :読み書きができ、設定ファイルは、 ***.vbproj 等と同じフォルダーに app.config という名前で保存され、実行時には、 [exe名].exe.config という名前で、 exe ファイルと同じフォルダーに作成される。 (理解できるまでは、ユーザーに設定しておいて下さい) (4) 値 保存したいプロパティ等の値を記入して下さい。 (例では、300,200) 表示したい、Form の大きさを記入 (5) 同様に順次、保存したいコントロール等の値を設定して下さい。 4.設定ができたら、自動的に、起動時・終了時に、読み書きができるようにプロパティにバインドします。 (1) フォームの [プロパティ] ウィンドウで、[ApplicationSettings]、[PropertyBinding] の順に展開し、 下図の赤丸の部分をクリックして下さい。 (2) すると下図のようなダイアログの画面が表示されます。 (3) Form のプロパティ が表示されますので、設定したいプロパティの上図の赤丸の部分をクリックすると、 先ほど設定した時の[名前]が表示されているはずですから、それを選択して下さい。 5.以下、同様に設定したいコントロールのプロパティを開き、設定値をプロパティにバインドして下さい。 但し、先の MSDN のリンク先にも下記のように書いてありますが...。 【何らか理由で、Size プロパティはバインド可能なプロパティとして表示されません。 これはこのバージョンでの設計上の判断ですが、最終版ではすべてのプロパティがバインドできるようになります。】 その後、VB2013 の現在まで修正された形跡はありません。 6.従って、Form の Size プロパティに関しては、下記のようにコードを作成して追加する必要があります。 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load Me.DataBindings.Add("Size", My.MySettings.Default, _ "FormSize", True, DataSourceUpdateMode.OnPropertyChanged) End Sub 7.以上で設定は、終わりです。 プログラムを実行すると、設定した内容が各コントロールのプロパティに反映されているかと思います。 一旦、終了して、再度起動して、終了時の状態が、起動時の設定に反映されていれば完成です。 8.プロパティにバインドせずにプログラムで設定する場合は、下記のように設定します。 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load '起動時に設定内容を反映させる場合 Me.Location = My.Settings.FormLocation Me.Size = My.Settings.FormSize End Sub Private Sub Form1_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing '終了時の状態を書き込む場合 My.Settings.FormLocation = Me.Location My.Settings.FormSize = Me.Size End Sub |
2. |
3. |
4. |
5. |
6. |
検索キーワード及びサンプルコードの別名(機能名) |