方法 : Visual Basic でユーザー設定のためのプロパティ グリッドを作成する

PropertyGrid コントロールに対して、My.Settings オブジェクトのユーザー設定プロパティを設定すると、ユーザー設定のためのプロパティ グリッドを作成できます。

注意

この例が動作するためには、アプリケーションでユーザー設定が構成されている必要があります。 ユーザー設定の追加については、「方法 : アプリケーション設定を追加または削除する」を参照してください。

My.Settings オブジェクトでは、各設定がプロパティとして公開されています。 プロパティの名前は設定の名前と同じで、プロパティの型は設定の型と同じです。 プロパティが読み取り専用かどうかは、設定のスコープで決定されます。つまり、アプリケーション スコープの設定のプロパティは読み取り専用であるのに対し、ユーザー スコープの設定のプロパティは読み書き可能です。 詳細については、「My.Settings オブジェクト (Visual Basic)」を参照してください。

注意

アプリケーションスコープの設定値を実行時に変更または保存することはできません。 アプリケーションスコープの設定を変更するには、アプリケーションを作成するときにプロジェクト デザイナーを使用して変更するか、またはアプリケーションの構成ファイルを編集するかのいずれかの方法のみが使用できます。 詳細については、「アプリケーションの設定の管理」を参照してください。

この例では、PropertyGrid コントロールを使用して、My.Settings オブジェクトのユーザー設定プロパティにアクセスします。 既定では、PropertyGrid には My.Settings オブジェクトのすべてのプロパティが表示されます。 一方、ユーザー設定プロパティは UserScopedSettingAttribute 属性を持ちます。 この例では、PropertyGridBrowsableAttributes プロパティを UserScopedSettingAttribute に設定して、ユーザー設定プロパティのみを表示します。

ユーザー設定のプロパティ グリッドを追加するには

  1. アプリケーションのデザイン サーフェイス (ここでは Form1 とする) に対して、ツールボックスから PropertyGrid コントロールを追加します。

    プロパティグリッド コントロールの既定の名前は PropertyGrid1 です。

  2. Form1 のデザイン サーフェイスをダブルクリックし、フォーム読み込みのイベント ハンドラーのコードを開きます。

  3. My.Settings オブジェクトを、プロパティ グリッド用に選択されたオブジェクトとして設定します。

    PropertyGrid1.SelectedObject = My.Settings
    
  4. ユーザー設定のみを表示するようにプロパティ グリッドを構成します。

    ' 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 でユーザー設定を永続化する

方法 : アプリケーション設定を追加または削除する

参照

My.Settings オブジェクト (Visual Basic)

その他の技術情報

アプリケーションの設定の管理