none
Como gravar valor fixo na textbox? RRS feed

  • Pergunta

  • Boa Noite,

    Eu sou iniciante na programação c# e preciso de ajuda pra terminar meu tcc...eu gostaria de saber se tem como gravar valor  "superficial" na textbox,  pois não quero gravar no banco de dados, quero que ao abrir e fechar a tela fique o ultimo valor que foi digitado salvo nessa textbox e na variável, pois vou  precisar utilizar essas variáveis em outras tela do programa. Eu já tentei criar variáveis e depois pegar e jogar nas textbox mas não funciona, alguém pode me ajudar? meu código ta assim:

      string server, databasee, uid, senha;
    
     private void Configurações_TI_Load(object sender, EventArgs e)
            {
                textBox1.Text = server.ToString();
                textBox2.Text = databasee.ToString();
                textBox3.Text = uid.ToString();
                textBox4.Text = senha.ToString();
            }
    
            
            //botão de salvar
            private void button3_Click(object sender, EventArgs e)
            {
                server = textBox1.Text;
    
                databasee = textBox2.Text;
    
               uid = textBox3.Text;
    
               senha = textBox4.Text;
     
            }

    sexta-feira, 22 de dezembro de 2017 00:13

Respostas

  • Olá Andressa.s,

    Bom algumas coisas podem serem melhoradas, mais sua necessidade é apenas recuperar e gravar quando clicar no botão salvar, você pode usar o código abaixo:

    //botão de salvar
    private void button3_Click(object sender, EventArgs e)
    {
        var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
        System.IO.File.WriteAllText(_configuracao, chaves);
    }
    
    private void Configurações_TI_Load_Load(object sender, EventArgs e)
    {
        var cfg = System.IO.File.ReadAllText(_configuracao);
        var chave = cfg.Split('|');
        textBox1.Text = chave[0];
        textBox2.Text = chave[1];
        textBox3.Text = chave[2];
        textBox4.Text = chave[3];
    }


    E caso precise que salve automaticamente ao fechar o form coloque esse código no evento FormClosing

    var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
    System.IO.File.WriteAllText(_configuracao, chaves);

    Isso é bem simples mais pelo que eu interpretei resolverá sua necessidade.


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    sábado, 23 de dezembro de 2017 01:45
  • Olá Andressa

    Ficou faltando essa variável acredito que foi na hora de subir o código.
    Segue atualização do código:

    private string _configuracao = AppContext.BaseDirectory + "configuracao.cfg";
    
    private void button3_Click(object sender, EventArgs e)
    {
        var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
        System.IO.File.WriteAllText(_configuracao, chaves);
    }
    
    private void Configurações_TI_Load_Load(object sender, EventArgs e)
    {
        var cfg = System.IO.File.ReadAllText(_configuracao);
        var chave = cfg.Split('|');
        textBox1.Text = chave[0];
        textBox2.Text = chave[1];
        textBox3.Text = chave[2];
        textBox4.Text = chave[3];
    }

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    sexta-feira, 29 de dezembro de 2017 01:06
  • Agora ele não ta reconhecendo o comando ... mds

    AppContext.BaseDirectory

    Ué como assim? 

    Substitua isso:

    private string _configuracao = AppContext.BaseDirectory + "configuracao.cfg";

    Por isso:

    private string _configuracao = Application.StartupPath  + "\\configuracao.cfg";



    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    • Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 01:55
    sexta-feira, 29 de dezembro de 2017 01:38

Todas as Respostas

  • Bom dia Andressa.

    Você pode criar uma classe publica e instanciar nela os valores.

        public class Globais
        {

    /* variaveis privadas*/

            private string _server;
            private string _database;
            private string _uid;
            private string _senha;

    /* instancias publicas*/

           

            public string Server { get; set; }

            public string Database 
            {
                set { _database = value; } 
            }

            public string Uid 
            {
                get { return _uid; }             
            }
            public string Senha
            {
                get { return _senha; }
                set { _senha = value; }
            }
        }

    na primeira parte tem as variáveis privadas que podem conter um valor inicial ou não:

    private string _server = "www.abc.com.br";

    private string _senha;

    na segunda parte tem os métodos que farão a manipulação dessas variáveis.

    Dei exemplo de 4 casos:

    quando o método é leitura e escrita de maneira compacta (tem que ter o mesmo nome da variável privada - 1 caso).

    quando o método é só escrita (2 caso) ou seja, quando você pode alterar o valor da variável - apenas a parte SET.

    quando o método é só leitura (3 caso), quando você só quer retornar o valor da variável - apenas a parte GET.

    quando o método é leitura e escrita (4 caso), quando você pode tanto recuperar o valor da variável como altera-lo explicitamente.

    essa classe você consegue utiliza-la em qualquer ponto do sistema dessa forma.

                Globais classe = new Globais();
                classe.Server = "teste123";

    Nesse caso, estou criando uma instância da classe e atribuindo o valor na variável _server através do método classe.Server.

    Existe ainda uma outra opção: Colocar no nome da classe, a palavra static:

    public static class Globais

    na variável privada, a palavra static:

    private static string _senha;

    e no método, a palavra static:

            public static string Senha
            {
                get { return _senha; }
                set { _senha = value; }
            }

    isso fará com que a implementação da variável em qualquer ponto do programa não exija a instância da classe podendo ser declarado diretamente:

    Globais.Senha = "123456";

    Colocar classes como static não me agrada muito mas acredito que pode te ajudar.

    Criar variáveis privadas e altera-las através do método GET/SET é uma boa prática que nos permite melhor controle das mesmas. No caso do SET, a palavra value representa o valor que estamos passando para a variável (é uma palavra reservada do sistema).

    Qualquer dúvida, estou à disposição.

    • Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 00:55
    • Não Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 01:06
    • Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 01:10
    • Não Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 01:44
    sexta-feira, 22 de dezembro de 2017 11:42
  • Boa tarde.

    Veja se te ajuda.

    Ao fechar a aplicação o texto do textbox é salvo em um arquivo txt.

    Ao iniciar a aplicação, o arquivo txt é lido e carregado no textbox.

    private void salva_texto() { StreamWriter fluxoTexto; string Arquivo = "nomedotextbox.txt"; if (Arquivo == null ) { MessageBox.Show("Arquivo Invalido", "Salvar Como", MessageBoxButtons.OK); } else { fluxoTexto = new StreamWriter(Arquivo); fluxoTexto.Write(txtCodigoBanco.Text); fluxoTexto.Close(); } } private void ler_texto_salvo() { StreamReader fluxoTexto; string linhaTexto; if (File.Exists("nomedotextbox.txt")) { fluxoTexto = new StreamReader("nomedotextbox.txt"); linhaTexto = fluxoTexto.ReadLine(); String Str_Leitura = ""; while (linhaTexto != null) { Str_Leitura += linhaTexto + Environment.NewLine; linhaTexto = fluxoTexto.ReadLine(); } fluxoTexto.Close(); txtCodigoBanco.Text = Str_Leitura; } } private void Form1_FormClosing(object sender, FormClosingEventArgs e) { salva_texto(); } private void Form1_Load(object sender, EventArgs e) { ler_texto_salvo();

    }



    MARIANO1776

    • Sugerido como Resposta Mariano1776 sexta-feira, 29 de dezembro de 2017 00:50
    sexta-feira, 22 de dezembro de 2017 18:29
  • Olá Andressa.s,

    Bom algumas coisas podem serem melhoradas, mais sua necessidade é apenas recuperar e gravar quando clicar no botão salvar, você pode usar o código abaixo:

    //botão de salvar
    private void button3_Click(object sender, EventArgs e)
    {
        var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
        System.IO.File.WriteAllText(_configuracao, chaves);
    }
    
    private void Configurações_TI_Load_Load(object sender, EventArgs e)
    {
        var cfg = System.IO.File.ReadAllText(_configuracao);
        var chave = cfg.Split('|');
        textBox1.Text = chave[0];
        textBox2.Text = chave[1];
        textBox3.Text = chave[2];
        textBox4.Text = chave[3];
    }


    E caso precise que salve automaticamente ao fechar o form coloque esse código no evento FormClosing

    var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
    System.IO.File.WriteAllText(_configuracao, chaves);

    Isso é bem simples mais pelo que eu interpretei resolverá sua necessidade.


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Senior Developer C#
    Development Leader at JAMSOFT Informática
    Microsoft Certified Professional
    Criador e Mantenedor do EntityFramework Core for Firebird
    Contribuidor do EntityFramework Core
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    sábado, 23 de dezembro de 2017 01:45
  • Bom dia Rafael.

    Só vi agora sua mensagem. Estou disponível no whattzap 11 9 4301-6075

    Abraços

    sábado, 23 de dezembro de 2017 12:20
  • Boa tarde,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 27 de dezembro de 2017 16:53
    Moderador
  • Boa Noite moço;

    Eu testei seu código e essa parte do código ele não está reconhecendo a variavel (_configuracao):

    O que eu faço?

    var cfg = System.IO.File.ReadAllText(_configuracao);



    • Editado Andressa.s sexta-feira, 29 de dezembro de 2017 00:54
    sexta-feira, 29 de dezembro de 2017 00:40
  • Boa Noite moço,

    vou testar aqui  depois dou um retorno;

    :)

    sexta-feira, 29 de dezembro de 2017 00:41
  • Boa noite Andressa.

    Estamos a disposição.

    sexta-feira, 29 de dezembro de 2017 00:43
  • Boa Noite moço;

    Obrigado pela ajuda..vou testar aqui e depois dou um retorno, 

    Obrigada msm...

    :)

    OK 👍, Fiz dessa forma por que fica simples para você entender, em uma outra oportunidade podemos fazer isso gravando em um banco como SQLITE ou XML com um formato mais interessante.

    See you later 💻!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    sexta-feira, 29 de dezembro de 2017 00:49
  • Olá Andressa

    Ficou faltando essa variável acredito que foi na hora de subir o código.
    Segue atualização do código:

    private string _configuracao = AppContext.BaseDirectory + "configuracao.cfg";
    
    private void button3_Click(object sender, EventArgs e)
    {
        var chaves = string.Format("{0}|{1}|{2}|{3}", textBox1.Tex, textBox2.Text, textBox3.Text, textBox4.Text);
        System.IO.File.WriteAllText(_configuracao, chaves);
    }
    
    private void Configurações_TI_Load_Load(object sender, EventArgs e)
    {
        var cfg = System.IO.File.ReadAllText(_configuracao);
        var chave = cfg.Split('|');
        textBox1.Text = chave[0];
        textBox2.Text = chave[1];
        textBox3.Text = chave[2];
        textBox4.Text = chave[3];
    }

    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    sexta-feira, 29 de dezembro de 2017 01:06
  • Bom moço, compreendi perfeitamente sua explicação,  excelente msm....mas minha duvida é como salvo os textos digitados nos textbox através do botão, dentro das variáveis agora?

    E preciso gravar tds essas variaveis como na do caso 4:   

    public string Senha
                 {
                     get { return _senha; }
                     set { _senha = value; }
                 }

    pq posso mudar o valor delas a qualquer hora.

    • Editado Andressa.s sexta-feira, 29 de dezembro de 2017 01:44
    sexta-feira, 29 de dezembro de 2017 01:10
  • Agora ele não ta reconhecendo o comando ... mds

    AppContext.BaseDirectory
    sexta-feira, 29 de dezembro de 2017 01:29
  • Agora ele não ta reconhecendo o comando ... mds

    AppContext.BaseDirectory

    Ué como assim? 

    Substitua isso:

    private string _configuracao = AppContext.BaseDirectory + "configuracao.cfg";

    Por isso:

    private string _configuracao = Application.StartupPath  + "\\configuracao.cfg";



    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    • Marcado como Resposta Andressa.s sexta-feira, 29 de dezembro de 2017 01:55
    sexta-feira, 29 de dezembro de 2017 01:38
  • Funcionooou...nossa valew msm....

    Se não for pedir muito..como faço pra utilizar esses valores gravados nessas variáveis em outro form?

    sexta-feira, 29 de dezembro de 2017 01:54
  • Olá Andressa.s

    Crie uma classe, como o nome desejável e coloque essa variável externa nela.

    public static string _configuracao = Application.StartupPath  + "\\configuracao.cfg";

    Feito isso pode seguir os passos do Form "Configurações_TI".

    Também remova do form principal isso:

    private string _configuracao = Application.StartupPath  + "\\configuracao.cfg";
     

    para não haver redundância de código, e onde tem _configuracao nos métodos, coloque para pegar da variável que está na classe que você criou.

    Abraços!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    sexta-feira, 29 de dezembro de 2017 11:36
  • Boa Noite moço,

    desculpa minha falta de conhecimento, mas ainda não entendi como pegar o valor gravado nessas variáveis pra usar  em outro form...Eu criei a classe, mas quando entro  em outro form não consigo(não  sei) chamar essas variáveis...

      public class Globais
            {
               
                public static string _configuracao = Application.StartupPath + "\\configuracao.cfg";
                
               
            }
           

    Criei a classe mas não  sei como chamar....os valores das variaveis em outro form. Quando eu  entro no  outro form  e faço isso:

    Configurações_TI ct = new Configurações_TI();
               
     //tento colocar o ct.textBox pra ver se aparece a classe criada mas não funciona
    ct.textBox.Text;           
                
    Tento colocar o ct.textBox pra ver se aparece a classe criada (Globais)mas não funciona
         
                

    • Editado Andressa.s quarta-feira, 3 de janeiro de 2018 05:28
    quarta-feira, 3 de janeiro de 2018 05:06
  • Oi Andressa.s

    Feliz 2018!!!

    Tente usar assim:

    private void button3_Click(object sender, EventArgs e)
    {
        Globais.Gravar(textBox1.Tex, textBox2.Tex, textBox3.Tex, textBox4.Tex);
    }
    
    private void Configurações_TI_Load_Load(object sender, EventArgs e)
    {
        var chave = Globais.LerArquivo();
        textBox1.Text = chave[0];
        textBox2.Text = chave[1];
        textBox3.Text = chave[2];
        textBox4.Text = chave[3];
    }

    Use essa classe também:

    public class Globais
    {
        private static string _configuracao = Environment.CurrentDirectory + "\\configuracao.cfg";
    
        public static string[] LerArquivo()
        {
            var cfg = System.IO.File.ReadAllText(_configuracao);
            return cfg.Split('|');
        }
    
        public static void Gravar(params string[] args)
        {
            var chaves = string.Join("|", args);
            System.IO.File.WriteAllText(_configuracao, chaves);
        }
    }


    Dessa forma você pode usar em qual formulário que quiser!

    Siga o exemplo acima,

    Abraços!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter


    quarta-feira, 3 de janeiro de 2018 11:50
  • Boa noite, 

    Feliz ano novo moço...

    Eu compreendi a explicação, e funcionou esse ultimo exemplo perfeitamente...mas não consigo chamar a variável que ta gravada em outro form (não tenho esse conhecimento)...tem como me mostrar o exemplo...tipo eu queria  pegar o valor que ta gravado na variavel da textbox1 em outro form.



    • Editado Andressa.s quinta-feira, 4 de janeiro de 2018 00:21
    quinta-feira, 4 de janeiro de 2018 00:14
  • Boa noite, 

    Feliz ano novo moço...

    Eu compreendi a explicação, e funcionou esse ultimo exemplo perfeitamente...mas não consigo chamar a variável que ta gravada em outro form (não tenho esse conhecimento)...tem como me mostrar o exemplo...tipo eu queria  pegar o valor que ta gravado na variavel da textbox1 em outro form.



    Olá Andressa.s,

    Esse projeto é pequeno, se quiser me enviar eu posso fazer um exemplo com base no que você tem, assim eu te explico nos comentários do código. 

    Se puder envia para: ralms@ralms.net

    Depois que eu fizer e estiver OK, agente volta aqui no fórum e postamos a resolução, assim outros usuário do fórum poderão ter o privilegio da resposta.


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    Rafael Almeida
    Microsoft Developer .NET
    Microsoft Certified Professional
    Development Leader at JAMSOFT Informática
    Email: ralms@ralms.net
    Blog -  GitHub  -  LinkedIn -  Twitter

    quinta-feira, 4 de janeiro de 2018 00:37
  • Boa noite moço,

    eu to apenas com uma tela do programa, o resto ta com meus colegas....eu só queira saber como chamar a variavel msm  em outra tela...eu consegui chamar a classe global e ler arquivo,  mas quando chega  pra pegar a variavel  que ta na chave, não sei como prosseguir, eu tava fazendo assim:

    //entro em outro  form  
    private void entrar_login_Click(object sender, EventArgs e)
    {           
    //chamo o form onde ta as variaveis
     Configurações_TI ct = new Configurações_TI();
    
    //e aqui tento chamar a variavel que ta na chave[0]
    Globais.LerArquivo(ct.textBox1.Text=chave[0]);
    }
    mas da errado...só  dá certo até Globais.LerArquivo()...será que tem como ajudar?..só essa? pfvorzinhooo
    sexta-feira, 5 de janeiro de 2018 21:54