Usuário com melhor resposta
ListBox

Pergunta
-
Estou carregando um listBox com um DataTable, porém ao vincular o DataSource do listBox é executado o evento SelectedIndexChanged antes de atribuir o DisplayMenber e o ValueMember.Isto está prococando um erro no evento SelectedIndexChanged, onde verifico se o SeletedIndex <> -1 é executado uma rotina.Eis os códigos:
Private Sub listaObras() Dim conn As SqlConnection = New SqlConnection(My.Settings.conexaoCobra) conn.Open() Try Dim cmd As SqlCommand = New SqlCommand("spListaObra", conn) cmd.CommandType = CommandType.StoredProcedure cmd.Parameters.AddWithValue("@idCliente", CType(idCliente, Integer)) Dim da As SqlDataAdapter = New SqlDataAdapter(cmd) Dim dt As DataTable = New DataTable da.Fill(dt) Me.lstObras.SelectedIndex = -1 Me.lstObras.DataSource = dt Me.lstObras.DisplayMember = "nomeDaObra" Me.lstObras.ValueMember = "idObra" Catch ex As Exception MsgBox(ex.Message) Finally conn.Close() End Try End Sub Private Sub lstObras_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstObras.SelectedIndexChanged If Me.lstObras.SelectedIndex = -1 Then Exit Sub idObra = Me.lstObras.SelectedValue.ToString mostraObra() End Sub
Como corrigir isto?
Sergio Ivanenko
Respostas
-
Voce ja pensou em setar o displaymember e o valuemember antes de passar o datasource ?
Me.lstObras.DisplayMember = "nomeDaObra"
Me.lstObras.ValueMember = "idObra"
Me.lstObras.DataSource = dtPense tbem em retirar o Me.lstObras.SelectedIndex = -1 pois toda vez q voce seta um datasource ele coloca em -1 automaticamente.
Um forte abraço,
Atenciosamente,
Alexsandro Nunes Lacerda
http://www.alexsandronunes.com.br
-----------------------------------
Microsoft MCT | MCPD | MCTS | MCP
Software Architect e Team Leader
Especialista .Net## Se esta ajudou proponha como resposta! ##
- Marcado como Resposta Ivanenko quinta-feira, 12 de maio de 2011 13:21
-
Como está atribuindo o datasource, você pode pegar o selecteditem do listbox. Dessa forma você pega o dado tipado e você pode verificar se o .selecteditem não é nothing.
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta Ivanenko quinta-feira, 12 de maio de 2011 13:21
Todas as Respostas
-
Voce ja pensou em setar o displaymember e o valuemember antes de passar o datasource ?
Me.lstObras.DisplayMember = "nomeDaObra"
Me.lstObras.ValueMember = "idObra"
Me.lstObras.DataSource = dtPense tbem em retirar o Me.lstObras.SelectedIndex = -1 pois toda vez q voce seta um datasource ele coloca em -1 automaticamente.
Um forte abraço,
Atenciosamente,
Alexsandro Nunes Lacerda
http://www.alexsandronunes.com.br
-----------------------------------
Microsoft MCT | MCPD | MCTS | MCP
Software Architect e Team Leader
Especialista .Net## Se esta ajudou proponha como resposta! ##
- Marcado como Resposta Ivanenko quinta-feira, 12 de maio de 2011 13:21
-
Como está atribuindo o datasource, você pode pegar o selecteditem do listbox. Dessa forma você pega o dado tipado e você pode verificar se o .selecteditem não é nothing.
Bruno Ferreira de Souza
MSP - Microsoft Student Partner
MCTS .NET Framework - Windows Applications
MCPD .NET Framework - Windows Applications
www.maestrodotnet.com.br
@BrunoMaestro- Marcado como Resposta Ivanenko quinta-feira, 12 de maio de 2011 13:21
-