Jump to content

Recommended Posts

Posted

Boa noite,

estou a trabalhar num programa onde peço uma marca e um modelo de um automóvel. Para as marcas queria fazer utilizando checkbox's, ou seja, o utilizador teria de selecionar a correspondente à sua marca e esse resultado aparecesse numa textbox ao lado. Entretanto, depois da marca selecionada, o utilizador teria de escolher numa combobox o modelo respetivo àquela marca. Então neste caso teríamos de ter as coleções de combobox associadas a cada checkbox. Podem-me ajudar?

Obrigado (:

Posted

Ora boas, concordo com o nelsonr, a mim parece-me um bocadinho confuso o método de o utilizador escolher a marca e modelo..Porque é que não utilizas por exemplo só combobox's/dropdownlist? na primeira escolhe a marca, na segunda escolhe o modelo (que só vai aparecer consoante a marca)... a mim parece-me mais simples... mas também não sei qual é o teu objectivo.

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted (edited)

Ora bem, eu faria (não quer dizer que seja o mais correto) algo assim:

'evento load do form, vai carregar as marcas para a combobox1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
          'Cria um array de strings da marca
       Dim marca As String() = {"Vespa", "Skoda"}  
        'Vai dizer a combobox onde vai buscar os valores
       ComboBox1.Items.AddRange(marca)
   End Sub
   Private Sub ComboBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox1.SelectedIndexChanged
       'evento change da combo1 , adiciona os modelos como fizemos em cima
       Dim modeloVespa As String() = {"Px50", "Px125"}
       Dim modeloSkoda As String() = {"Octávia", "Fabia"}
     'vai ver qual a marca selecionada através do indice e adiciona o array certo à  combobox
       If ComboBox1.SelectedIndex = 0 Then
           ComboBox2.Items.Clear()
           ComboBox2.Items.AddRange(modeloVespa)
       End If
       If ComboBox1.SelectedIndex = 1 Then
           ComboBox2.Items.Clear()
           ComboBox2.Items.AddRange(modeloSkoda)
       End If
   End Sub

Boa sorte

Edit: como normalmente não comentei o código 🙂

Edited by ribeiro55

Férias! Estou por aqui: http://maps.google.p...001549&t=h&z=20 (a bulir claro está!)

Nunca mais é verão outra vez.. :)

Posted

Mais um exemplo do uso de combobox

' Criar uma classe que vai conter a definição do automovel
Public Class Automovel
   ' Cada automovel contem uma marca
   Public Marca As String
   ' e uma lista de modelos
   Public Modelos As String()

   ' Fazer o override da função to string, de modo a que quando se usar o objecto em situações que pretende uma string, automaticamente retorna a marca
   ' (como é o caso de mostrar o objecto na combobox)
   Public Overrides Function ToString() As String
       Return (Marca)
   End Function
End Class

' No evento de selecionar um automovel
Private Sub cmbAutomovel_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbAutomovel.SelectedIndexChanged
   ' Limpa a combobox que contem as marcas
   cmbMarca.Items.Clear()

   ' Se o utilizador selecionou um automovel
   If cmbAutomovel.SelectedIndex >= 0 Then
       ' Adiciona todas as marcas do automovel selecionado à combobox das marcas
       cmbMarca.Items.AddRange(DirectCast(cmbAutomovel.SelectedItem, Automovel).Modelos)
   End If
End Sub

' No evento de inicio do form
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
   ' Definir uma lista que vai conter todos os automoveis
   Dim Automoveis As New List(Of Automovel)

   ' Adicionar os automoveis e respectivas marcas a uma lista
   Automoveis.Add(New Automovel() With
                  {
                      .Marca = "Vespa",
                      .Modelos = {
                                   "Px50",
                                   "Px125"
                                   }
                  })
   Automoveis.Add(New Automovel() With
                  {
                      .Marca = "Skoda",
                      .Modelos = {
                                   "Octávia",
                                   "Fabia"
                                   }
                  })

   ' Preencher a combobox com a lista de automoveis 
   For Each automovel As Automovel In Automoveis
       cmbAutomovel.Items.Add(automovel)
   Next
End Sub
  • Vote 1

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.