Compartilhar via


Como criar configurações de aplicativo

Usando código gerenciado, é possível criar novas configurações de aplicativo e associá-las a propriedades no seu formulário ou aos controles de formulário, para que essas configurações sejam carregadas e salvas automaticamente no tempo de execução.

No procedimento a seguir, você cria manualmente uma classe wrapper que deriva de ApplicationSettingsBase. Uma propriedade publicamente acessível é adicionada a essa classe para cada configuração de aplicativo que você desejar expor.

Também é possível executar esse procedimento usando o mínimo de código possível no designer do Visual Studio. Consulte também Como criar configurações de aplicativo usando o Designer.

Criar novas configurações de aplicativo com programação

  1. Adicione uma nova classe ao seu projeto e renomeie-o. Para este procedimento, chamaremos essa classe de MyUserSettings. Altere a definição de classe para que a classe derive de ApplicationSettingsBase.

  2. Defina uma propriedade nessa classe wrapper para cada configuração de aplicativo necessária e aplique essa propriedade com o ApplicationScopedSettingAttribute ou UserScopedSettingAttribute, dependendo do escopo da configuração. Para obter mais informações sobre o escopo das configurações, consulte Visão geral de configurações de aplicativo. Agora, seu código deverá se parecer com o seguinte:

    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. Crie uma instância dessa classe wrapper no seu aplicativo. Ela geralmente será um membro privado do formulário principal. Agora que você definiu sua classe, você precisa vinculá-la a uma propriedade; nesse caso, a BackColor propriedade do seu formulário. Você pode fazer isso no manipulador de eventos Load do seu formulário.

    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. Se você fornecer uma maneira de alterar as configurações no tempo de execução, será necessário salvar as configurações atuais do usuário no disco quando o formulário for fechado, caso contrário, essas alterações serão perdidas.

    //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
    

    Agora você criou com êxito uma nova configuração de aplicativo e a associou à propriedade especificada.

O exemplo a seguir mostra um arquivo de configurações de aplicativo que define duas configurações de escopo de aplicativo e duas configurações de escopo de usuário. Você precisa adicionar os nomes das configurações criadas como entradas no <elemento configSections> na parte superior do arquivo.

<?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>

Segurança do .NET Framework

O provedor de configurações padrão, , LocalFileSettingsProviderpersiste as informações nos arquivos de configuração como texto sem formatação. Isso limita a segurança à segurança de acesso aos arquivos fornecida pelo sistema operacional para o usuário atual. Por isso, é necessário ter cuidado com as informações armazenadas nos arquivos de configuração. Por exemplo, um uso comum para configurações de aplicativo é armazenar cadeias de conexão que apontam para o armazenamento de dados do aplicativo. No entanto, devido a questões de segurança, tais cadeias de caracteres não devem incluir senhas. Para obter mais informações sobre cadeias de conexão, consulte SpecialSetting.

Confira também