footboyedit Posted February 15, 2014 at 02:03 AM Report #545356 Posted February 15, 2014 at 02:03 AM 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 (:
nelsonr Posted February 15, 2014 at 12:01 PM Report #545370 Posted February 15, 2014 at 12:01 PM Boas, nesse tipo de escolhas/conteúdo, julgo que usar dropdownlists facilita muito mais, tanto a nivel de programação com para o utilizador.
Gnrtuga Posted February 15, 2014 at 12:18 PM Report #545374 Posted February 15, 2014 at 12:18 PM 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.. :)
footboyedit Posted February 15, 2014 at 04:02 PM Author Report #545391 Posted February 15, 2014 at 04:02 PM Obrigado aos dois e acho que o Gnrtuga tem razão, é melhor fazer como diz. Pode-me me explicar como fazer?
Gnrtuga Posted February 15, 2014 at 06:23 PM Report #545408 Posted February 15, 2014 at 06:23 PM (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 February 16, 2014 at 12:46 AM 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.. :)
nelsonr Posted February 15, 2014 at 07:01 PM Report #545411 Posted February 15, 2014 at 07:01 PM 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 1 Report
footboyedit Posted February 15, 2014 at 07:29 PM Author Report #545415 Posted February 15, 2014 at 07:29 PM Muito obrigado 👍
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now