COMBOBOX

FELIPEDRONI 06/12/2012 10:02:00
#415534
Bom dia meus caros!!

Tenho o seguinte problema, preciso carregar um combobox na mão
mas também preciso colocar um valor(ID) expecifico para cada valor adicionado
já fiz isso em asp.net e fico assi:

Me.ddl_Id_Status_Chamado.Items.Add(New ListItem([Ô]Chamado Aberto[Ô], [Ô]0-1-2-4[Ô]))
Me.ddl_Id_Status_Chamado.Items.Add(New ListItem([Ô]Chamado Fechado[Ô], [Ô]3[Ô]))

Mas agora não sei fazer isso em forms
Se alguem poder me ajudar, agradeço!
ROBSON220BASS 06/12/2012 10:43:38
#415537
da pra fazer assim tambem...

porem depois voce adapta do seu jeito..
fiz so pra testar aqui..

Private Sub Form4_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim NOM, COD As String
NOM = [Ô]ROBSON[Ô]
COD = [Ô]12[Ô]

ComboBox1.Items.Add(NOM & Space(30 - Len(NOM)) & [Ô]|[Ô] & COD)

End Sub
FELIPEDRONI 06/12/2012 10:53:23
#415538
Perguntinha, assim quando eu pegar o selectedvalue ele vai vim 12?
ROBSON220BASS 06/12/2012 11:12:46
#415541
voce pode colocar no evento que deseja.

Dim linha As String = [Ô][Ô]
Dim vetor As String()

linha = Me.ComboBox1.Items(0).ToString

vetor = Split(Trim(linha), [Ô]|[Ô])

TextBox2.Text = vetor(0) [ô]aqui retorna o nome
TextBox1.Text = vetor(1) [ô]aqui retorna o codigo

tenta ai
ROBSON220BASS 06/12/2012 11:21:45
#415542
opssss.....

tenta assim agora que da certo:

Dim linha As String = [Ô][Ô]
Dim vetor As String()

linha = Me.ComboBox1.SelectedItem.ToString

vetor = Split(Trim(linha), [Ô]|[Ô])

TextBox2.Text = vetor(0)
TextBox1.Text = vetor(1)


troquei isso :
linha = Me.ComboBox1.Items(0).ToString

por isso:

linha = Me.ComboBox1.SelectedItem.ToString

fiz o teste aqui e funcionou perfeitamente..
KWIIBY 07/12/2012 12:35:17
#415612
No VB6 eu uso assim:
Combo1.Additem [Ô]Teste[Ô]
Combo1.ItemData(0) = 87 [ô]Aqui diz que o item de index 0 da combo possui o código 87

depois para mostrar:
MsgBox Combo1.ItemData(0)
NILSONTRES 07/12/2012 13:04:49
#415614
Resposta escolhida
[ô]na verdade o que vc esta querendp é isso ai.
[ô]1º cria essa classe
Public Class MeuItemData
Public Valor As Object
Public Descricao As String
Public Sub New(ByVal NovoValor As Object, ByVal NovaDescricao As String)
Valor = NovoValor
Descricao = NovaDescricao
End Sub
Public Overrides Function ToString() As String
Return Descricao
End Function
End Class


[ô]depois selecione o registro a seu modo,eu utilizo uma classe
SELEÇÃO.SEL([Ô]Select vendedor,codigo From nag_vendedores order by Vendedor[Ô], True, True)
Dim meuarray As New ArrayList
While SELEÇÃO.MY_RE.Read
meuarray.Add(New MeuItemData(SELEÇÃO.MY_RE.Item([Ô]Codigo[Ô]).ToString, SELEÇÃO.MY_RE.Item([Ô]Vendedor[Ô]).ToString))
End While
With CBO_VENDEDOR
.ValueMember = [Ô]Descricao[Ô]
.DisplayMember = [Ô]Valor[Ô]
.DataSource = meuarray
CBO_VENDEDOR.Refresh()
CBO_VENDEDOR.SelectedIndex = 0
End With

[ô]depois faça esse teste na sua combo
Private Sub CBO_VENDEDOR_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles CBO_VENDEDOR.SelectionChangeCommitted
Dim ItemSelected As String
ItemSelected = CType(CBO_VENDEDOR.SelectedItem, MeuItemData).Valor
[ô]MsgBox([Ô]Value Selected = [Ô] & ItemSelected, MsgBoxStyle.Information)
End Sub
Tópico encerrado , respostas não são mais permitidas