Usuário com melhor resposta
vetor e textbox

Pergunta
-
Boa tarde!
estou com erro no meu código, estou desenvolvendo um software que faz um calculo de multiplicação com valor inserido pelo usuário em uma textbox + valor gravado em uma variável, porém não sei o que meu código tem de errado, pq quando deixo de preencher algum campo do meu software, ou eu coloco zero pois nao quero saber resultado de uma fruta, ele da erro.
private void txtFormular_Click(object sender, EventArgs e)
label1.Text = Convert.ToString(u);
{
// declaração das variaveis
int abacate, acerola, amora, bananananica, caquichocolate, u, p, l, c;
// interligando campo a ser digitao com o produto (Frutas)
abacate = Convert.ToInt32(textBox1.Text);
u = abacate * 84;
p = abacate * 20;
l = abacate * 20;
c = abacate * 6;
acerola = Convert.ToInt32(textBox2.Text);
u = acerola * 90;
p = acerola * 9;
l = acerola * 10;
c = acerola * 8;
amora = Convert.ToInt32(textBox3.Text);
u = amora * 86;
p = amora * 10;
l = amora * 10;
c = amora * 18;
label3.Text = Convert.ToString(p);
label5.Text = Convert.ToString(l);
label4.Text = Convert.ToString(c);
Respostas
-
Olá Bryan,
Qual erro?
Analisando superficialmente o seu código pode dar erro se deixar o textbox1, textbox2 ou textbox3 em branco. Isso porque o método "Convert.ToInt32" não consegue converter uma string vazia em um inteiro.
Para prever isso você deve colocar uma verificação antes de fazer a conversão. Exemplo:
if (!string.IsNullOrEmpty(textBox1.Text)) abacate = Convert.ToInt32(textBox1.Text);
OBS: Fazer o mesmo para as demais conversões.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:35
-
Fez o procedimento que sugeri?
Tenta debugar o código, colocar um break point no início do código e aí fica mais fácil ver linha a linha o que está ocorrendo
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:35
-
int abacate, acerola, amora, bananananica, caquichocolate, u, p, l, c;
if (!string.IsNullOrEmpty(textBox1.Text))
abacate = Convert.ToInt32(textBox1.Text);
u = abacate * 84;
p = abacate * 20;
l = abacate * 20;
c = abacate * 6;
if (!string.IsNullOrEmpty(textBox2.Text))
acerola = Convert.ToInt32(textBox2.Text);
u = acerola * 90;
p = acerola * 9;
l = acerola * 10;
c = acerola * 8;
cada fruta ficou com erro sublinhado em vermelho na primiera coluna eu marquei pra vc ter uma noção eu tirei print mas aqui nao manda a imagem
- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:34
-
Sim, era esperado..substitua sua linha que declara as variaveis por essa:
int abacate = 0, acerola = 0, amora = 0, bananananica = 0, caquichocolate = 0, u, p, l, c;
Isso faz com que as frutas tem um valor inicial de 0, independente do cálculo
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:28
-
Você pode alterar um pouco aquela verificação que sugeri, dessa forma:
if (!string.IsNullOrEmpty(textBox1.Text)) abacate = Convert.ToInt32(textBox1.Text); else abacate = 0;
E fazer nos outros da mesma forma.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:55
Todas as Respostas
-
Olá Bryan,
Qual erro?
Analisando superficialmente o seu código pode dar erro se deixar o textbox1, textbox2 ou textbox3 em branco. Isso porque o método "Convert.ToInt32" não consegue converter uma string vazia em um inteiro.
Para prever isso você deve colocar uma verificação antes de fazer a conversão. Exemplo:
if (!string.IsNullOrEmpty(textBox1.Text)) abacate = Convert.ToInt32(textBox1.Text);
OBS: Fazer o mesmo para as demais conversões.
Valeu!
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:35
-
O erro é o seguinte:
frente do programa no visual studio:
abacate [........] textebox1
acerola [........] textebox2
amora [......] textbox3 [formular]
laranja [.........] textbox4
tangerina [..........] textbox 5
se eu colocar qualquer valor nas 5 textbox de cada item e clicar no botão calcular ele faz o calculo certinho, porem o usuario pode escolher quantas ele quiser, dai eu coloco valor nas tres primeira, e as duas ultimas como nao quero colo "0" dai quando clico em formula, nao acontece nada, eu fico clicando e nao faz nada.
-
Fez o procedimento que sugeri?
Tenta debugar o código, colocar um break point no início do código e aí fica mais fácil ver linha a linha o que está ocorrendo
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:35
-
-
int abacate, acerola, amora, bananananica, caquichocolate, u, p, l, c;
if (!string.IsNullOrEmpty(textBox1.Text))
abacate = Convert.ToInt32(textBox1.Text);
u = abacate * 84;
p = abacate * 20;
l = abacate * 20;
c = abacate * 6;
if (!string.IsNullOrEmpty(textBox2.Text))
acerola = Convert.ToInt32(textBox2.Text);
u = acerola * 90;
p = acerola * 9;
l = acerola * 10;
c = acerola * 8;
cada fruta ficou com erro sublinhado em vermelho na primiera coluna eu marquei pra vc ter uma noção eu tirei print mas aqui nao manda a imagem
- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:34
-
Sim, era esperado..substitua sua linha que declara as variaveis por essa:
int abacate = 0, acerola = 0, amora = 0, bananananica = 0, caquichocolate = 0, u, p, l, c;
Isso faz com que as frutas tem um valor inicial de 0, independente do cálculo
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:28
-
André Dessa vez deu certo, porem não tem uma forma deu marca todos os textbox com 0, para que o usuário nao tenha que ficar colocando zero em todos os campos que ele nao for querer calcular, e se eu nao coloco 0, apenas pulo a textbox e clico em formula ele da esse erro:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1()); - (aqui sublinhado em amarelo)
}
}
}
-
Você pode alterar um pouco aquela verificação que sugeri, dessa forma:
if (!string.IsNullOrEmpty(textBox1.Text)) abacate = Convert.ToInt32(textBox1.Text); else abacate = 0;
E fazer nos outros da mesma forma.
Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!
André Secco
Microsoft MSP & MSDN Tech Advisor
Blog: http://andresecco.com.br
GitHub: http://github.com/andreluizsecco
Twitter: @andre_secco- Marcado como Resposta bryan machado quarta-feira, 31 de agosto de 2016 20:55
-