方法 : Visual Basic でユーザー設定のためのプロパティ グリッドを作成する
PropertyGrid コントロールに対して、My.Settings オブジェクトのユーザー設定プロパティを設定すると、ユーザー設定のためのプロパティ グリッドを作成できます。
[!メモ]
この例が動作するためには、アプリケーションでユーザー設定が構成されている必要があります。詳細については、「アプリケーションの設定の管理」を参照してください。
My.Settings オブジェクトでは、各設定がプロパティとして公開されています。プロパティの名前は設定の名前と同じで、プロパティの型は設定の型と同じです。プロパティが読み取り専用かどうかは、設定のスコープで決定されます。つまり、アプリケーション スコープの設定のプロパティは読み取り専用であるのに対し、ユーザー スコープの設定のプロパティは読み書き可能です。詳細については、「My.Settings オブジェクト」を参照してください。
[!メモ]
アプリケーションスコープの設定値を実行時に変更または保存することはできません。アプリケーションスコープの設定を変更するには、アプリケーションを作成するときにプロジェクト デザイナーを使用して変更するか、またはアプリケーションの構成ファイルを編集するかのいずれかの方法のみが使用できます。詳細については、「アプリケーションの設定の管理」を参照してください。
この例では、PropertyGrid コントロールを使用して、My.Settings オブジェクトのユーザー設定プロパティにアクセスします。既定では、PropertyGrid には My.Settings オブジェクトのすべてのプロパティが表示されます。一方、ユーザー設定プロパティは UserScopedSettingAttribute 属性を持ちます。この例では、PropertyGrid の BrowsableAttributes プロパティを UserScopedSettingAttribute に設定して、ユーザー設定プロパティのみを表示します。
ユーザー設定のプロパティ グリッドを追加するには
アプリケーションのデザイン サーフェイス (ここでは Form1 とする) に対して、ツールボックスから PropertyGrid コントロールを追加します。
プロパティグリッド コントロールの既定の名前は PropertyGrid1 です。
Form1 のデザイン サーフェイスをダブルクリックし、フォーム読み込みのイベント ハンドラーのコードを開きます。
My.Settings オブジェクトを、プロパティ グリッド用に選択されたオブジェクトとして設定します。
PropertyGrid1.SelectedObject = My.Settings
ユーザー設定のみを表示するようにプロパティ グリッドを構成します。
' Attribute for the user-scope settings. Dim userAttr As New System.Configuration.UserScopedSettingAttribute Dim attrs As New System.ComponentModel.AttributeCollection(userAttr) PropertyGrid1.BrowsableAttributes = attrs
[!メモ]
アプリケーション スコープの設定のみを表示するには、UserScopedSettingAttributeの代わりに ApplicationScopedSettingAttribute の属性を使用します。
信頼性の高いプログラミング
アプリケーションがユーザー設定を保存するのは、アプリケーションが終了するときです。設定をすぐに保存するには、My.Settings.Save メソッドを呼び出します。詳細については、「方法 : Visual Basic でユーザー設定を永続化する」を参照してください。
参照
処理手順
方法 : Visual Basic でアプリケーション設定を読み取る
方法 : Visual Basic でユーザー設定を変更する
方法 : Visual Basic でユーザー設定を永続化する