• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

ScreamingNoises

[Visual Studio C#] Algumas ajudas para iniciar

11 mensagens neste tópico

Boas,

Eu comecei a tentar fazer uma aplicação usando o Visual Studio 2008 C# + MS SQL Server Express.

Ainda tou um pouco enferrujado nisto e precisava de ajuda aqui nalguns conceitos, eu sei me desenrascar bem, mas há certas coisas que não tou a entender bem para poder iniciar.

A primeira coisa que gostava de fazer era que a aplicação tivesse uma espécie de ficheiro de configuração e neste ficheiro estaria indicado a última base de dados que o programa utilizou. Ao iniciar o programa ele iria verificar qual a última base de dados que ele utilizou, caso esta existisse ele abriria uma janela com o programa propriamente dito, caso não existisse, primeiro abriria uma janela com as opções para iniciar umas base dados e só depois abriria o programa propriamente dito.

Uma coisa que eu ainda não tou a perceber é como funciona a navegação entre janelas, por exemplo como eu faço para inicialmente abrir uma janela de login e após o login feito ele fechar a janela de login e abrir o programa?

Obrigado desde já pela ajuda;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já deste uma olhadela à secção Tutoriais / How to's?

Já, mas houve coisas que ainda não percebi bem.. Já percebi mais ou menos o conceito do Visual Studio, agora o resto vou descobrindo sozinho... obrigado pela ajuda na mesma.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Como é que eu posso utilizar ficheiros de configuração?

no App.config eu pus isto:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="DatabaseInfo"
      type="ConfigSectionHandler.ConfigSectionHandler, ConfigSectionHandler" />
  </configSections>
  <DatabaseInfo type="ConfigSectionObjects.ProgramInfo, ConfigSectionObjects">
    <database>null</database>
    <server>null</server>
    <port>null</port>
    <user>null</user>
    <pass>null</pass>
  </DatabaseInfo>
</configuration>

agora como eu faço para no meu programa eu passar os valores do App.config para variàveis?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ninguém sabe como é que posso guardar o valor de uma variável num ficheiro?

por exemplo a primeira vez que o programa inicio o valor da variàvel database é null e da próxima vez que iniciar já tem o valor da última base de dados acedida. Eu tava a tentar fazer com ficheiros de configuração, mas não consigo aceder aos valores depois no meu programa. E tb acho que não é possível o programa escrever depois no ficheiro de configuração:s

any ideas?

Obrigado desde já pela ajuda...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pessoalmente nunca usei o app.config nem tão pouco sei como se usa o dito cujo. Fica guardado na raíz do programa? Algures num directório dentro da conta de utilizador? Podemos definir o caminho? Bem, não interessa... Eu cá prefiro criar o meu próprio ficheiro de configurações e para isso uso XML.

Para ler/escrever no XML tenho usado uma biblioteca que há tempos encontrei na net, mas como estas a usar o VS2008, experimenta LINQ. Ainda não tive tempo nem paciência para aprender LINQ + XML, mas dizem que facilita a vida em muitas coisas, experimenta. Lê na MSDN como utilizar. E outra coisa, tens de ter .NET 3.5 para isso, a 3.0 apenas não chega.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

humm, depois de martelar muito nisto lá consegui descobrir como se usa o App.config e por acaso é muito simples. Aqui fica para quem precisar mais tarde:

no App.config coloquei:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="database" value="bufas"></add>
    <add key="server" value="null"></add>
    <add key="port" value="null"></add>
    <add key="user" value="null"></add>
    <add key="pass" value="null"></add>
  </appSettings>
</configuration>

depois para aceder às keys, no meu programa faço por exemplo:

string database = System.Configuration.ConfigurationManager.AppSettings["database"];

para inserir/remover uma nova key faço: (NOTA: não dá para modificar, para o fazer o melhor é remover a key e inserir a nova modificada)

System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("server");
config.AppSettings.Settings.Add("server", "teste");
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");

Simples;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Para modificar uma já existente.

Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings["server"].Value = "teste";
config.Save();

Podes também usar os Settings. Tens a vantagem que podes guardar valores de outros tipos que não String.

Por exemplo, se definisses que tinhas um Port seria um int com o valor 5555. No código só precisavas de fazer o seguinte.

int dbPort = Settings1.Default.Port;

A tua variável dbPort ficava com 5555.

Ao definires nas Settings automaticamente, essas definições são também introduzidas no ficheiro App.Config e portanto podes ir ao ficheiro e fazer a alteração directamente de igual forma. A não ser que estejas a fazer um dll, nesse caso não mete no App.Config (já que as dll's não possuem tal coisa) mas mete embutido no código compilado da dll. Ficas com o inconveniente que não podes aceder ao ficheiro para alterar manualmente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu tou aqui com dois pequenos problemas:

Tipo ao iniciar o meu programa ele cria a janela principal e cria outra pequena janela para poder ser inserido os dados de login, porém nao tou a conseguir que a janela de login é que esteja activa ao iniciar o programa:s

o outro problema é:

ao criar a janela de login eu faço com que a janela principal fique em disabled. ou seja a unica alternativa do utilizador é inserir os dados e pressionar OK, ou clicar no botao de close (X no canto superior direito). se o utilizador clicar em OK ele volta a colocar a janela principal em enabled, porém eu não consigo alterar o handler do close para colocar a janela principal em enabled, logo esta fica eternamente em disabled.

como é que eu altero o handler do botao close da janela do windows?

Obrigado desde já pela ajuda;)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes abrir o formulário como Modal, assim já ficas com a janela de login activa e a outra inactiva. Quando a janela de login é fechada a outra passa automaticamente a ficar activa.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Sim funcionou;)

Bastou usar o ShowDialog() em vez do Show() para abrir a janela de login ;)

Obrigado.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora