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

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

注意

この例を使用するには、アプリケーションのユーザー設定を構成することが必要です。 詳細については、「アプリケーションの設定の管理 (.NET)」を参照してください。

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

注意

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

この例では、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 でユーザー設定を永続化する」を参照してください。

関連項目