方法 : アプリケーション設定を作成する
マネージ コードを使用すると、新しいアプリケーション設定を作成して、フォーム上のプロパティまたはフォームのコントロールにバインドできます。これによって、これらの設定が実行時に自動的に読み込まれて保存されます。
以下の手順では、ApplicationSettingsBase から派生するラッパー クラスを手動で作成します。 このクラスに対して、パブリックにアクセスできるプロパティを公開するアプリケーション設定ごとに追加します。
Visual Studio デザイナーでは、最小限のコードを使用してこの手順を実行することもできます。 詳細については 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナを使用してアプリケーション設定を作成する および 方法 : デザイナーを使用してアプリケーション設定を作成する および 方法 : デザイナーを使用してアプリケーション設定を作成する.
新しいアプリケーション設定をプログラムで作成するには
新しいクラスをプロジェクトに追加し、名前を変更します。 この手順では、このクラスを MyUserSettings と呼びます。 クラスが ApplicationSettingsBase から派生するように、クラス定義を変更します。
必要な各アプリケーション設定に対してこのラッパー クラスのプロパティを定義し、そのプロパティを適用します。設定のスコープに基づいて、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; } } }
アプリケーション内に、このラッパー クラスのインスタンスを作成します。 通常、これはメイン フォームのプライベート メンバーになります。 クラスを定義したら、そのクラスをプロパティにバインドする必要があります。この場合は、フォームの 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")); }
実行時に設定を変更する手段を提供する場合は、変更内容が失われないように、フォームが閉じられるときにユーザーの現在の設定をディスクに保存する必要があります。
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」を参照してください。