ITEMDATA DO VB6 NO VB.NET

MALA 26/05/2010 10:40:50
#342827
[txt-color=#0000f0]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

Cbo.Items.Add(New MeuItemData(1, [Ô]Primeiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(2, [Ô]Segundo Item[Ô]))
Cbo.Items.Add(New MeuItemData(3, [Ô]Terceiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(4, [Ô]Quarto Item[Ô]))
Cbo.Items.Add(New MeuItemData(5, [Ô]Quinto Item[Ô]))[/txt-color]

Estou usando assim, mas gostaria de saber como faço para selecionar um do Cbo pelo valor.

Busca no vb6
[txt-color=#e80000]E assim percorrer o Cbo inteiro ate achar um determinado valor e jogar
Faço assim no vb6
For I = 0 To Cbo.ListCount - 1
If Cbo.ItemData(I) = ValorItemdata Then
Cbo.ListIndex = I
BuscaDadosCbo = Cbo.List(I)
Exit Function
End If
Next I
BuscaDadosCbo = Cbo.List(0)[/txt-color]


no vb.net como farica isso, alguem poderia me ajudar
JONATHANSTECKER 26/05/2010 10:58:40
#342828
Mala, tente assim...

BuscaDadosCbo = Cbo.FindString(ValorItemdata)

Atenciosamente,
Jonathan Stecker
MALA 26/05/2010 11:10:20
#342830
Nao funcionou nao amigo,
JONATHANSTECKER 26/05/2010 11:20:29
#342831
Cara ve se eu entendi certo, mais acho que é isto que você está querendo...

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Cbo.Items.Add(New MeuItemData(1, [Ô]Primeiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(2, [Ô]Segundo Item[Ô]))
Cbo.Items.Add(New MeuItemData(3, [Ô]Terceiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(4, [Ô]Quarto Item[Ô]))
Cbo.Items.Add(New MeuItemData(5, [Ô]Quinto Item[Ô]))
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim BuscaDadosCbo As Integer = 0
Dim ValorItemdata As String = String.Empty

ValorItemdata = [Ô]Terceiro Item[Ô]
BuscaDadosCbo = Cbo.FindString(ValorItemdata)

Me.Cbo.SelectedIndex = BuscaDadosCbo

End Sub
MALA 26/05/2010 11:28:23
#342833
Nao e bem isso nao amigo

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Cbo.Items.Add(New MeuItemData(1, [Ô]Primeiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(2, [Ô]Segundo Item[Ô]))
Cbo.Items.Add(New MeuItemData(3, [Ô]Terceiro Item[Ô]))
Cbo.Items.Add(New MeuItemData(4, [Ô]Quarto Item[Ô]))
Cbo.Items.Add(New MeuItemData(5, [Ô]Quinto Item[Ô]))
End Sub

[txt-color=#e80000] Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim BuscaDadosCbo As Integer = 0
Dim ValorItemdata As String = String.Empty

ValorItemdata = [Ô]Terceiro Item[Ô] Este falor eu nao tenho
ValorItemdata = [Ô]3[Ô]
eu tenho o valor 3 e quero buscar o valor [Ô]Terceiro Item[Ô]

cbo.text = [Ô]Terceiro Item[Ô]

End Sub [/txt-color]

Entedeu amigo.
MAXCIM 26/05/2010 12:00:32
#342835
Resposta escolhida
   
eu uso assim para buscar pelo itendata
creio que voce tenha apenas que trocar .key pelo campo que voce usou para armazenar o Itemdata

Public function Localiza_Itendata(ByVal CBO As ComboBox, ByVal Valor&)
Dim i%
Localiza_Itendata = False
For i = 0 To CBO.Items.Count - 1
If Valor.Equals(CBO.Items.Item(i).key) Then
Localiza_Itendata = True
CBO.SelectedIndex = i
Exit Function
End If
Next
End Function
Tópico encerrado , respostas não são mais permitidas