PropertyGrid コントロールにMy.Settings
オブジェクトのユーザー設定プロパティを設定することで、ユーザー設定のプロパティ グリッドを作成できます。
注
この例を機能させるには、アプリケーションのユーザー設定が構成されている必要があります。 詳細については、「 アプリケーション設定の管理 (.NET)」を参照してください。
My.Settings
オブジェクトは、各設定をプロパティとして公開します。 プロパティ名は設定名と同じで、プロパティの種類は設定の種類と同じです。 設定の スコープ は、プロパティが読み取り専用かどうかを決定します。 アプリケーション スコープ設定のプロパティは読み取り専用ですが、 ユーザー スコープ設定のプロパティは読み取り/書き込みです。 詳細については、「 My.Settings オブジェクト」を参照してください。
注
実行時にアプリケーション スコープ設定の値を変更または保存することはできません。 アプリケーション スコープの設定は、( プロジェクト デザイナーを使用して) アプリケーションを作成するとき、またはアプリケーションの構成ファイルを編集する場合にのみ変更できます。 詳細については、「 アプリケーション設定の管理 (.NET)」を参照してください。
この例では、 PropertyGrid コントロールを使用して、 My.Settings
オブジェクトのユーザー設定プロパティにアクセスします。 既定では、 PropertyGrid には、 My.Settings
オブジェクトのすべてのプロパティが表示されます。 ただし、ユーザー設定プロパティには UserScopedSettingAttribute 属性があります。 次の使用例は、BrowsableAttributesのPropertyGridプロパティをUserScopedSettingAttributeに設定して、ユーザー設定プロパティのみを表示します。
ユーザー設定プロパティ グリッドを追加するには
ツールボックスからアプリケーションのデザイン サーフェイスに PropertyGrid コントロールを追加します (ここでは
Form1
と想定されます)。プロパティ グリッド コントロールの既定の名前は
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
注
アプリケーション スコープの設定のみを表示するには、ApplicationScopedSettingAttributeの代わりに UserScopedSettingAttribute 属性を使用します。
堅牢なプログラミング
アプリケーションは、アプリケーションのシャットダウン時にユーザー設定を保存します。 設定をすぐに保存するには、 My.Settings.Save
メソッドを呼び出します。 詳細については、「 方法: Visual Basic でユーザー設定を保持する」を参照してください。
こちらも参照ください
.NET