Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Érica Regina

Validação de Formulário

Recommended Posts

Bom Dia.

 

Criei uma aplicação Windows Forms Application Visual Studio 2008. Fiz um formulário simples que faz operações matemáticas entre dois números, gerando um resultado.

 

Quero fazer uma validação nos meus TextBox impedindo que o usuário somes strings, pois só trabalho com inteiros.

Gostaria de gerar uma execção pra esse caso.

 

Como eu poderia fazer isso?

Eu coloquei um try/catch no método, mas não sei como utiliza-lo neste caso

 

Segue trecho do código!

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; // Bibliotecas do FrameWork

namespace Operadores 
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e) // Todo este procedimento é executado no momento do clic do botão Calcular
        {
            try
            {
                if()
                {
                }

            }
            catch(Exception e) 
            {
             
            }


            long primairoValor, segundoValor, resultado; // Declara as variáveis

            primairoValor = int.Parse(txtPrimeiroValor.Text); //A primairoValor valor recebe o que foi digitado no txtPrimeiroValor.
            segundoValor = int.Parse(txtSegundoValor.Text); //Se o valor digitado for uma string ele converte para int. 

            if(rbAdicao.Checked) // Se estiver checado para somar
            {
                resultado = primairoValor + segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if (rbSubtracao.Checked)
            {
                resultado = primairoValor - segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbMultiplicacao.Checked)
            {
                resultado = primairoValor * segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbDivisao.Checked)
            {
                resultado = primairoValor / segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbResto.Checked)
            {
                resultado = primairoValor % segundoValor;
                txtResultado.Text = resultado.ToString();
            }
        }

        private void btnLimpar_Click(object sender, EventArgs e) // Método que limpa todos os TextBox do formulário
        {
            txtPrimeiroValor.Text = "";
            txtSegundoValor.Text = "";
            txtResultado.Text = "";
        }
    }
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

O único local que pode dar erro é na conversão no int.Parse, então:

 

private void button1_Click(object sender, EventArgs e) // Todo este procedimento é executado no momento do clic do botão Calcular
        {
            
            long primairoValor, segundoValor, resultado; // Declara as variáveis


	try
            {
                primairoValor = int.Parse(txtPrimeiroValor.Text); //A primairoValor valor recebe o que foi digitado no txtPrimeiroValor.
            	segundoValor = int.Parse(txtSegundoValor.Text); //Se o valor digitado for uma string ele converte para int. 

            }
            catch(Exception e) 
            {
			//aqui você exibe uma mensagem ao usuário que so pode ser número
            }
            

            if(rbAdicao.Checked) // Se estiver checado para somar
            {
                resultado = primairoValor + segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if (rbSubtracao.Checked)
            {
                resultado = primairoValor - segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbMultiplicacao.Checked)
            {
                resultado = primairoValor * segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbDivisao.Checked)
            {
                resultado = primairoValor / segundoValor;
                txtResultado.Text = resultado.ToString();
            }
            else if(rbResto.Checked)
            {
                resultado = primairoValor % segundoValor;
                txtResultado.Text = resultado.ToString();
            }
        }

Compartilhar este post


Link para o post
Compartilhar em outros sites

beleza!

 

Mas esta dando erro: Seqüência de entrada não estava em um formato incorreto.

 

Gostaria de resaltar que eu criei um projeto como Windows Forms Application

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; // Bibliotecas do FrameWork

namespace Operadores 
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void button1_Click(object sender, EventArgs e) // Todo este procedimento é executado no momento do clic do botão Calcular
        {
            long primairoValor, segundoValor, resultado; // Declara as variáveis

            try
            {
                    primairoValor = int.Parse(txtPrimeiroValor.Text); //A primairoValor valor recebe o que foi digitado no txtPrimeiroValor.
                    segundoValor = int.Parse(txtSegundoValor.Text); //Se o valor digitado for uma string ele converte para int. 
           
                if(rbAdicao.Checked) // Se estiver checado para somar
                {
                    resultado = primairoValor + segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if (rbSubtracao.Checked)
                {
                    resultado = primairoValor - segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if(rbMultiplicacao.Checked)
                {
                    resultado = primairoValor * segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if(rbDivisao.Checked)
                {
                    resultado = primairoValor / segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if(rbResto.Checked)
                {
                    resultado = primairoValor % segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
            }
            catch(Exception e)
            {
               MessageBox.Show("Favor digite apenas Numeros");
            }
       }
        protected void Clear(object sender, EventArgs e) 
        {
            txtPrimeiroValor.Text = "";
            txtSegundoValor.Text = "";
            txtResultado.Text = "";
        }
  }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora entendi... você quer verificar se é inteiro pra não gerar erro.

Faça assim:

private void button1_Click(object sender, EventArgs e) // Todo este procedimento é executado no momento do clic do botão Calcular
        {
            long primairoValor, segundoValor, resultado; // Declara as variáveis

            int.TryParse(txtPrimeiroValor.Text, out primairoValor); //A primairoValor valor recebe o que foi digitado no txtPrimeiroValor.
            int.Parse(txtSegundoValor.Text, out segundoValor); //Se o valor digitado for uma string ele converte para int. 

            if (primairoValor == 0 || segundoValor == 0)
            {
                MessageBox.Show("Favor digite apenas Numeros");
            }
            else
            {

                if (rbAdicao.Checked) // Se estiver checado para somar
                {
                    resultado = primairoValor + segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if (rbSubtracao.Checked)
                {
                    resultado = primairoValor - segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if (rbMultiplicacao.Checked)
                {
                    resultado = primairoValor * segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if (rbDivisao.Checked)
                {
                    resultado = primairoValor / segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
                else if (rbResto.Checked)
                {
                    resultado = primairoValor % segundoValor;
                    txtResultado.Text = resultado.ToString();
                }
            }
        }

 

O try é bastante utilizado pra tratamento de erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.