Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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é Jak na to: Vytvoření nastavení aplikace pomocí návrháře.
Programové vytvoření nového nastavení aplikace
Přidejte do projektu novou třídu a přejmenujte ji. Pro účely tohoto postupu nazveme tuto třídu
MyUserSettings. Změňte definici třídy tak, aby třída byla odvozena z ApplicationSettingsBase.Definujte vlastnost pro tuto obálkovou třídu pro každé požadované nastavení aplikace a použijte tuto vlastnost s ApplicationScopedSettingAttribute nebo UserScopedSettingAttributev závislosti na rozsahu nastavení. Další informace o oboru nastavení naleznete 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 ClassVytvoř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 rutině obsluhy události
Loadformulář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 SubPokud 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 SubNyní 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 v části <configSections> element 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 nastavení, LocalFileSettingsProvider, zachovává 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í pro nastavení aplikace je například ukládání připojovacích řetězců, 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ích řetězcích najdete v tématu SpecialSetting.
Viz také
.NET Desktop feedback