28-06-2009, 17:38
Boas!
Estou aqui com uns problemas a finalizar o meu projecto da cadeira de Programação Orientada a Objectos.
O problema é com as excepções, queria validar vários campos (de textBox´s). Basicamente eles têm de ser validados antes de adicionar novo atleta. O que quero validar, é no campo da textBox2, apenas podem ser inseridos valores numéricos.
Deixo aqui o código:
Outro problema esta ainda na validação:
Aquando da execução do programa, se meter nenhum campo sem nada... isso não funciona, porque os campos da textBox2, textBox3 são numéricos e da textbox6 e textBox7 são TimeSpan... ou seja não são do tipo .text, se o utilizador não meter nenhum destes (textBox2, textBox3, textbox6 e textBox7) o programa "crasha".
Ajudem-me pro favor... amanhã tenho de entregar isto.
Estou aqui com uns problemas a finalizar o meu projecto da cadeira de Programação Orientada a Objectos.
O problema é com as excepções, queria validar vários campos (de textBox´s). Basicamente eles têm de ser validados antes de adicionar novo atleta. O que quero validar, é no campo da textBox2, apenas podem ser inseridos valores numéricos.
Deixo aqui o código:
Citar:private void button1_Click(object sender, EventArgs e)
{
toolStripStatusLabel1.Text = " ";
label10.Text = " ";
// O problema esta aqui, se isto for executado o programa "crasha"...
/*int X = 0;
if (textBox2.Text != "")
{
try
{
X = int.Parse(textBox2.Text);
}
catch (Exception)
{
toolStripStatusLabel1.Text = ("Erro! Apenas valores numericos.");
}
}*/
Atleta a = new Atleta(textBox1.Text, int.Parse(textBox2.Text), int.Parse(textBox3.Text), textBox4.Text, textBox5.Text, comboBox1.Text, TimeSpan.Parse(textBox6.Text), TimeSpan.Parse(textBox7.Text));
if (a.TempoChegada < a.TempoPartida)
{
toolStripStatusLabel1.Text = ("Erro! O tempo de partida nunca poderá ser superior ao tempo de chegada.");
}
else if ((a.Idade < 10) || (a.Idade > 45))
{
toolStripStatusLabel1.Text = ("Erro! A idade que definiu não pode ser usada; Apenas entre 10 e 45 anos.");
}
else if ((textBox1.Text.Length <= 0) || (textBox2.Text.Length <= 0) || (textBox3.Text.Length <= 0) || (textBox4.Text.Length <= 0) || (textBox5.Text.Length <= 0) || (comboBox1.SelectedItem.ToString().Equals("Selecionar") || (textBox6.Text.Length <= 0) || (textBox7.Text.Length <= 0)))
{
toolStripStatusLabel1.Text = ("Erro! Ainda existem campos por preencher.");
}
else
{
a.Escalao = a.DeterminarEscalao();
a.TempoDeProva = a.determinatempoprova();
GestaoAtleta.atletas.Add(a);
label10.Text = GestaoAtleta.atletas.Count.ToString();
//show
dataGridView1.DataSource = null;
dataGridView1.DataSource = GestaoAtleta.atletas;
dataGridView1.Refresh();
toolStripStatusLabel1.Text = ("Atleta adicionado com sucesso!");
//Clean();
}
}
Outro problema esta ainda na validação:
Citar:else if ((textBox1.Text.Length <= 0) || (textBox2.Text.Length <= 0) || (textBox3.Text.Length <= 0) || (textBox4.Text.Length <= 0) || (textBox5.Text.Length <= 0) || (comboBox1.SelectedItem.ToString().Equals("Selecionar") || (textBox6.Text.Length <= 0) || (textBox7.Text.Length <= 0)))
{
toolStripStatusLabel1.Text = ("Erro! Ainda existem campos por preencher.");
}
Aquando da execução do programa, se meter nenhum campo sem nada... isso não funciona, porque os campos da textBox2, textBox3 são numéricos e da textbox6 e textBox7 são TimeSpan... ou seja não são do tipo .text, se o utilizador não meter nenhum destes (textBox2, textBox3, textbox6 e textBox7) o programa "crasha".
Ajudem-me pro favor... amanhã tenho de entregar isto.