Dev (Back & Front)ARTIGO

Windows Forms Application: alterando arquivo de configuração dinamicamente

Olá, pessoal! Neste artigo vou falar um pouco sobre Windows Forms Application. Na prática, muitas vezes precisamos alterar algumas configurações dinamicamente, ou seja, precisamos alterar alguns dados dentro do arquivo App.config em tempo de execução.

O que vou falar e mostrar agora é que esse método pode alterar o arquivo de configuração dinamicamente, passando o nome da chave ao valor.

Durante a aplicação desse método nós vamos utilizar:

  1. Visual Studio .NET 2010
  2. Framework: 4.0
  3. Plataforma: Windows Forms Application
  4. Linguagem: C#

É tudo bem simples o que vou mostrar neste artigo, porém muito útil no dia-a-dia. Muitos não sabem fazer na prática, então resolvi mostrar cada etapa e explicar em detalhes os procedimentos.

O primeiro passo foi criar um aplicativo do tipo Windows Forms Application. O segundo passo foi criar uma classe chamada Configuracao.cs, pública e estática, ou seja, aquela que não precisa instanciar conforme conferimos na imagem abaixo.

Imagem 01:          

Dentro da classe, criei um método público e estático chamado UpdateAppSettins.

public static void UpdateAppSettings(string chave, string valor){}

Note que o método recebe uma string chave e uma string valor. No campo chave, deve ser passado o nome da chave do arquivo de configuração, já no campo valor deve ser passado o valor que será atribuído em tempo de execução.

Código 01:

public static void UpdateAppSettings(string chave, string valor)

{

// Open App.Config of executable

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);



// Add an Application Setting.

config.AppSettings.Settings.Remove(chave);

config.AppSettings.Settings.Add(chave, valor);



// Save the configuration file.

config.Save(ConfigurationSaveMode.Modified);



// Force a reload of a changed section.

ConfigurationManager.RefreshSection("appSettings");

}

Note que, na primeira linha de código, eu abro o arquivo App.config. Adicionei depois o Application Settings, salvei a modificação e fiz um refreshSection para atualizar. Sem esse refresh, o valor trocado não será utilizado com o .exe que está rodando.

Layout        

Depois de criar a classe e o método, criei o layout para utilização conforme podemos conferir na imagem a seguir.

Imagem 02:

No clique do botão, chamo o método passando o nome da tag do settings e o valor que desejo atribuir.

Código 02:

 private void cmdConfigurar_Click(object sender, EventArgs e)

{

try

{

Configuracao.UpdateAppSettings("nome", "mauricio");

Configuracao.UpdateAppSettings("teclado", "ABNT2");



MessageBox.Show("Alterado com sucesso");

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

}

}

É bem simples e fácil depois que o método é criado. Lógico que o arquivo App.config precisa ser adicionado junto ao projeto. Então vamos à próxima etapa!

Criação do App.config

No código
3, mostro a tag adicionada com um valor qualquer e na mudança via código o
mesmo fica da seguinte maneira.

Código 03:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<appSettings>

<add key="nome" value="valor"/>

<add key="Teclado" value="ABNT"/>

</appSettings>

</configuration>

Código 04:

<?xml version="1.0" encoding="utf-8" ?>

<configuration>

<appSettings>

<add key="nome" value="mauricio" />

<add key="teclado" value="ABNT2" />

</appSettings>

</configuration>

Fico por
aqui e, qualquer dúvida, é só utilizar o espaço de perguntas abaixo. Estou à disposição para troca de ideias e feedback.

Até a próxima!

Com mais de 20 anos trabalhando no mercado de tecnologia. Mestre em Engenharia Elétrica voltada para o mundo mobile, com mais de 20 livros publicados e cerca de 700 artigos publicados com intuito de ajudar àqueles que querem aprender a programar (site, software, desktop, serviços, api e mobile). Site pessoal: https://www.mauriciojunior.net - MVP, MCAD, MCP Microsoft

Ver perfil