Share via


Postupy: Vytváření nastavení aplikace

Pomocí spravovaného kódu můžete vytvořit nová nastavení aplikace a svázat je s vlastnostmi ve formuláři nebo ovládacích prvcích formuláře, aby se tato nastavení načetla a uložila automaticky za běhu.

V následujícím postupu ručně vytvoříte obálkovou třídu, která je odvozena z ApplicationSettingsBase. Do této třídy přidáte veřejně přístupnou vlastnost pro každé nastavení aplikace, které chcete zveřejnit.

Tento postup můžete provést také pomocí minimálního kódu v návrháři sady Visual Studio. Viz Také postup: Vytvoření aplikace Nastavení pomocí Návrháře.

Programové vytvoření nového aplikačního Nastavení

  1. Přidejte do projektu novou třídu a přejmenujte ji. Pro tento postup budeme volat tuto třídu MyUserSettings. Změňte definici třídy tak, aby třída byla odvozena od ApplicationSettingsBase.

  2. Definujte vlastnost pro tuto obálkovou třídu pro každé požadované nastavení aplikace a použijte tuto vlastnost buď s ApplicationScopedSettingAttributeUserScopedSettingAttributenebo , v závislosti na rozsahu nastavení. Další informace o oboru nastavení najdete v tématu Přehled Nastavení aplikace. Teď by váš kód měl vypadat takto:

    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;
            }
        }
    }
    
    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
    
  3. Vytvořte instanci této třídy obálky ve vaší aplikaci. Obvykle bude soukromým členem hlavního formuláře. Teď, když jste definovali třídu, musíte ji svázat s vlastností; v tomto případě BackColor vlastnost formuláře. Toho můžete dosáhnout v obslužné rutině Load události formuláře.

    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"));
    }
    
    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
    
  4. Pokud zadáte způsob, jak změnit nastavení za běhu, budete muset při zavření formuláře uložit aktuální nastavení uživatele na disk, jinak se tyto změny ztratí.

    //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();
        }
    
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        Mus.Save()
    End Sub
    

    Nyní jste úspěšně vytvořili nové nastavení aplikace a vázali ho na zadanou vlastnost.

Následující příklad ukazuje soubor nastavení aplikace, který definuje dvě nastavení s oborem aplikace a dvě nastavení s oborem uživatele. Musíte přidat názvy nastavení, která jste vytvořili jako položky pod <element configSections> v horní části souboru.

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
    </sectionGroup>
    <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
      <section name="WindowsApplication1.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" />
    </sectionGroup>
  </configSections>
  <applicationSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="Cursor" serializeAs="String">
        <value>Default</value>
      </setting>
      <setting name="DoubleBuffering" serializeAs="String">
        <value>False</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </applicationSettings>
  <userSettings>
    <WindowsApplication1.Properties.Settings>
      <setting name="FormTitle" serializeAs="String">
        <value>Form1</value>
      </setting>
      <setting name="FormSize" serializeAs="String">
        <value>595, 536</value>
      </setting>
    </WindowsApplication1.Properties.Settings>
  </userSettings>
</configuration>

Zabezpečení rozhraní .NET Framework

Výchozí zprostředkovatel LocalFileSettingsProvidernastavení zachová informace v konfiguračních souborech jako prostý text. Tím se omezí zabezpečení na zabezpečení přístupu k souborům poskytované operačním systémem pro aktuálního uživatele. Z tohoto důvodu je potřeba věnovat pozornost informacím uloženým v konfiguračních souborech. Jedním z běžných použití nastavení aplikace je například ukládání připojovací řetězec, které odkazují na úložiště dat aplikace. Kvůli obavám z zabezpečení by ale tyto řetězce neměly obsahovat hesla. Další informace o připojovací řetězec naleznete v tématu SpecialSetting.

Viz také