SELECIONAR OS RADIOBUTTONS APENAS DENTRO DA REGRA
Como posso permitir que o usuário selecione apenas os radio buttons de acordo com as regras de cada brinquedo?
estou tentando fazer desta maneira, mas esta dando erro:
id = Double.Parse(Cmb_idade.Text)
If (id >= 7 And id <= 12) Then
Rdb_minhocao.Enabled = True
Rdb_carrossel.Enabled = True
Rdb_roda.Enabled = True
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id = 6) Then
Rdb_minhocao.Enabled = True
Rdb_carrossel.Enabled = True
Rdb_roda.Enabled = False
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id > 12) Then
Rdb_minhocao.Enabled = False
Rdb_carrossel.Enabled = False
Rdb_roda.Enabled = True
Rdb_russa.Enabled = True
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id < 6 And id = 0) Then
Rdb_minhocao.Enabled = False
Rdb_carrossel.Enabled = False
Rdb_roda.Enabled = False
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
End If
estou tentando fazer desta maneira, mas esta dando erro:
id = Double.Parse(Cmb_idade.Text)
If (id >= 7 And id <= 12) Then
Rdb_minhocao.Enabled = True
Rdb_carrossel.Enabled = True
Rdb_roda.Enabled = True
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id = 6) Then
Rdb_minhocao.Enabled = True
Rdb_carrossel.Enabled = True
Rdb_roda.Enabled = False
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id > 12) Then
Rdb_minhocao.Enabled = False
Rdb_carrossel.Enabled = False
Rdb_roda.Enabled = True
Rdb_russa.Enabled = True
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
ElseIf (id < 6 And id = 0) Then
Rdb_minhocao.Enabled = False
Rdb_carrossel.Enabled = False
Rdb_roda.Enabled = False
Rdb_russa.Enabled = False
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
End If
Alguem tem esse fonte em vb.net?
Da maneira como deve ser:
Para usar:
namespace SEU_NAMESPACE_AQUI
{
public class Brinquedo
{
public string Nome { get; set; }
public int IdadeMin { get; set; }
public int IdadeMax { get; set; }
public double AlturaMin { get; set; }
public double AlturaMax { get; set; }
public int Capacidade { get; set; }
public List<Crianca> Criancas { get; set; }
public void AddCrianca(Crianca crianca)
{
if (crianca.Idade < this.IdadeMin | crianca.Idade > this.IdadeMax)
throw new IdadeException([Ô]A idade da criança não condiz com os critérios do brinquedo[Ô]);
if (crianca.Altura < this.AlturaMin | crianca.Altura > this.AlturaMax)
throw new AlturaException([Ô]A altura da criança não condiz com os critérios do brinquedo[Ô]);
if (Criancas.Count + 1 > this.Capacidade)
throw new CapacidadeException([Ô]A capacidade do brinquedo está esgotada[Ô]);
}
[Serializable]
public class CapacidadeException : Exception
{
public CapacidadeException() { }
public CapacidadeException(string message) : base(message) { }
public CapacidadeException(string message, Exception inner) : base(message, inner) { }
protected CapacidadeException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
}
[Serializable]
public class AlturaException : Exception
{
public AlturaException() { }
public AlturaException(string message) : base(message) { }
public AlturaException(string message, Exception inner) : base(message, inner) { }
protected AlturaException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
}
[Serializable]
public class IdadeException : Exception
{
public IdadeException() { }
public IdadeException(string message) : base(message) { }
public IdadeException(string message, Exception inner) : base(message, inner) { }
protected IdadeException(
System.Runtime.Serialization.SerializationInfo info,
System.Runtime.Serialization.StreamingContext context) : base(info, context) { }
}
}
public class Crianca
{
public string Nome { get; set; }
public int Idade { get; set; }
public double Altura { get; set; }
}
}
Para usar:
//essa variável pode ser global no form se quiser
List<Brinquedo> brinquedos = new List<Brinquedo>();
brinquedos.Add(new Brinquedo()
{
Nome = [Ô]Minhocão[Ô],
AlturaMax = 1.5,
AlturaMin = 1,
IdadeMax = 6,
IdadeMin = 12,
Capacidade = 12
});
brinquedos.Add(new Brinquedo()
{
Nome = [Ô]Roda gigante[Ô],
AlturaMax = 999,
AlturaMin = 1.3,
IdadeMax = 999,
IdadeMin = 6,
Capacidade = 26
});
try
{
//adicionando a criança
brinquedos.FirstOrDefault(x => x.Nome == [Ô]Minhocão[Ô]).AddCrianca(new Crianca()
{
Nome = [Ô]Joãozinho[Ô],
Idade = 13,
Altura = 1.3
});
}
catch (AlturaException ex)
{
MessageBox.Show(ex.Message);
}
catch(IdadeException ex)
{
MessageBox.Show(ex.Message);
}
catch(CapacidadeException ex)
{
MessageBox.Show(ex.Message);
}
Julia,
Primeiramente, você não precisa repetir as linhas para desmarcar os RadioButtons. Basta você colocar fora dos If Then.
De acordo com as regras que você postou, observe que o resultado sempre será do tipo Boolean (True ou False). Então você pode tranquilamente eliminar todos esses IF[ô]s. Assim você facilita a leitura do código e ao mesmo tempo, mantém a clareza.
Vamos lá.
Com as variáveis acima, vamos definir as permissões
Agora vamos aplicar aos controles.
Espero ter ajudado.
Primeiramente, você não precisa repetir as linhas para desmarcar os RadioButtons. Basta você colocar fora dos If Then.
Rdb_carrossel.Checked = False
Rdb_minhocao.Checked = False
Rdb_roda.Checked = False
Rdb_russa.Checked = False
De acordo com as regras que você postou, observe que o resultado sempre será do tipo Boolean (True ou False). Então você pode tranquilamente eliminar todos esses IF[ô]s. Assim você facilita a leitura do código e ao mesmo tempo, mantém a clareza.
Vamos lá.
Dim idade As Double = Convert.ToDouble(Cmb_idade.Text)
Dim altura As Double = Convert.DoDouble(Txt_Altura.Text)
Com as variáveis acima, vamos definir as permissões
Dim minhocaoLiberado As Boolean = (idade >= 6) And (idade <= 12) And (altura >= 1) And (altura <= 1.5)
Dim rodagiganteLiberado As Boolean = (idade > 6) And (altura >= 1.3)
Dim carrosslLiberado As Boolean = (idade >= 6) And (idade <= 12) And (altura >= 1) And (altura <= 1.5)
Dim montanharussaLiberado As Boolean = (idade > 12) And (altura > 1.5)
Agora vamos aplicar aos controles.
Rdb_minhocao.Enabled = minhocaoLiberado
Rdb_carrossel.Enabled = carrosslLiberado
Rdb_roda.Enabled = rodagiganteLiberado
Rdb_russa.Enabled = montanharussaLiberado
Espero ter ajudado.
Faça seu login para responder