方法 : アプリケーション設定を作成する

マネージ コードを使用すると、新しいアプリケーション設定を作成して、フォーム上のプロパティまたはフォームのコントロールにバインドできます。これによって、これらの設定が実行時に自動的に読み込まれて保存されます。

以下の手順では、ApplicationSettingsBase から派生するラッパー クラスを手動で作成します。 このクラスに対して、パブリックにアクセスできるプロパティを公開するアプリケーション設定ごとに追加します。

Visual Studio デザイナーでは、最小限のコードを使用してこの手順を実行することもできます。 詳細については 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナーを使用してアプリケーション設定を作成する および 方法 : デザイナーを使用してアプリケーション設定を作成する.

新しいアプリケーション設定をプログラムで作成するには

  1. 新しいクラスをプロジェクトに追加し、名前を変更します。 この手順では、このクラスを MyUserSettings と呼びます。 クラスが ApplicationSettingsBase から派生するように、クラス定義を変更します。

  2. 必要な各アプリケーション設定に対してこのラッパー クラスのプロパティを定義し、そのプロパティを適用します。設定のスコープに基づいて、ApplicationScopedSettingAttribute または UserScopedSettingAttribute を使用します。 設定のスコープの詳細については、「アプリケーション設定の概要」を参照してください。 ここまでのコードは、次のようになります。

    Imports System.Configuration
    
    Public Class MyUserSettings
        Inherits ApplicationSettingsBase
        <UserScopedSetting()> _
        <DefaultSettingValue("white")> _
        Public Property BackgroundColor() As Color
            Get
                BackgroundColor = Me("BackgroundColor")
            End Get
    
            Set(ByVal value As Color)
                Me("BackgroundColor") = value
            End Set
        End Property
    End Class
    
    using System;
    using System.Configuration;
    using System.Drawing;
    
    public class MyUserSettings : ApplicationSettingsBase
    {
        [UserScopedSetting()]
        [DefaultSettingValue("white")]
        public Color BackgroundColor
        {
            get
            {
                return ((Color)this["BackgroundColor"]);
            }
            set
            {
                this["BackgroundColor"] = (Color)value;
            }
        }
    }
    
  3. アプリケーション内に、このラッパー クラスのインスタンスを作成します。 通常、これはメイン フォームのプライベート メンバーになります。 クラスを定義したら、そのクラスをプロパティにバインドする必要があります。この場合は、フォームの BackColor プロパティにバインドします。 これは、フォームの Load イベント ハンドラーで行うことができます。

    Dim Mus As MyUserSettings
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Mus = New MyUserSettings()
        Mus.BackgroundColor = Color.AliceBlue
        Me.DataBindings.Add(New Binding("BackColor", Mus, "BackgroundColor"))
    End Sub
    
    MyUserSettings mus;
    
    private void Form1_Load(object sender, EventArgs e)
    {
        mus = new MyUserSettings();
        mus.BackgroundColor = Color.AliceBlue;
        this.DataBindings.Add(new Binding("BackColor", mus, "BackgroundColor"));
    }
    
  4. 実行時に設定を変更する手段を提供する場合は、変更内容が失われないように、フォームが閉じられるときにユーザーの現在の設定をディスクに保存する必要があります。

    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    
        //Make sure to hook up this event handler in the constructor!
        //this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
            void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                mus.Save();
            }
    

    これで、新しいアプリケーション設定が正常に作成され、指定したプロパティにバインドされました。

セキュリティ

既定の設定プロバイダーである LocalFileSettingsProvider は、情報をプレーンテキストとして構成ファイルに保持します。 この方法では、セキュリティは、オペレーティング システムが現在のユーザーに提供するファイル アクセス セキュリティに制限されます。 このため、構成ファイルに格納される情報に注意を払う必要があります。 たとえば、アプリケーション設定の一般的な用途の 1 つは、アプリケーションのデータ ストアを指す接続文字列を格納することです。 ただし、セキュリティ上の理由により、そのような文字列にはパスワードを含めないようにします。 接続文字列の詳細については、「SpecialSetting」を参照してください。

参照

処理手順

方法 : アプリケーション設定を検証する

参照

SpecialSettingAttribute

LocalFileSettingsProvider

概念

アプリケーション設定の概要