none
mostrar en text box valores de un combo

    Pregunta

  • quisiera que a traves de una sentencia de bucle for

    vaya recorriendo los nombres de empleados que estan dentro de un combo box y los vaya mostrando en una caja de texto

    estoy usando este codigo pero me arroja un error

       For veces As Integer = 1 To 8

                For Each nombres As String In cboanalistas.Items.ToString
                    TextBox1.Text = nombres
                Next

    next

    viernes, 3 de marzo de 2017 18:03

Respuestas

  • adicionalmente quisiera aclarar que los nombres deben de mostrarse uno por uno en la caja de texto cada vez que haga clic en el boton


    ¿Tienes vinculado los datos mediante la propiedad DataSource?. De ser así, cada vez que el usuario haga clic sobre el botón puedes incrementar en uno el índice para acceder al siguiente objeto de tipo DataRow, por ejemplo:

    Private Indice As Integer = 0
    
    Private Sub btnRecorrerItems_Click(sender As Object, e As EventArgs)
    
    	Dim dt As DataTable = TryCast(ComboBox1.DataSource, DataTable)
    
    	TextBox1.Text = dt.Rows(Indice)(1).ToString()
    
    	Indice = If(dt.Rows.Count - 1 = Indice, 0, Indice + 1)
    
    End Sub



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    • Marcado como respuesta cazita666 sábado, 4 de marzo de 2017 0:41
    viernes, 3 de marzo de 2017 22:49

Todas las respuestas

  • El ToString tiene que ir fuera del For, de lo contrario haces un For sobre la cadena, cosa que devuelve uno a uno los caracteres que la componen, y falla porque intentas metes el char en un string. Pon el ToString fuera:

    For Each item As Object In cboanalistas.Items
        TextBox1.Text &= item.ToString() & vbCrLf
    Next
    

    También te he quitado el "For veces", que lo único que habría conseguido es que los items se añaderan 8 veces al Texbox. Y he puesto un operador de concatenación en el textbox para que los items se vayan añadiendo a cada vuelta del bucle, en lugar de ir sustituyendo el valor anterior.

    viernes, 3 de marzo de 2017 18:14
  • Gracias por responder, 

    puse el codigo que me indicas pero al darle clic en el boton mostrar que tengo en el text box solo me aparece 

    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView
    System.Data.DataRowView

    viernes, 3 de marzo de 2017 22:13
  • adicionalmente quisiera aclarar que los nombres deben de mostrarse uno por uno en la caja de texto cada vez que haga clic en el boton
    viernes, 3 de marzo de 2017 22:41
  • adicionalmente quisiera aclarar que los nombres deben de mostrarse uno por uno en la caja de texto cada vez que haga clic en el boton


    ¿Tienes vinculado los datos mediante la propiedad DataSource?. De ser así, cada vez que el usuario haga clic sobre el botón puedes incrementar en uno el índice para acceder al siguiente objeto de tipo DataRow, por ejemplo:

    Private Indice As Integer = 0
    
    Private Sub btnRecorrerItems_Click(sender As Object, e As EventArgs)
    
    	Dim dt As DataTable = TryCast(ComboBox1.DataSource, DataTable)
    
    	TextBox1.Text = dt.Rows(Indice)(1).ToString()
    
    	Indice = If(dt.Rows.Count - 1 = Indice, 0, Indice + 1)
    
    End Sub



    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.

    • Marcado como respuesta cazita666 sábado, 4 de marzo de 2017 0:41
    viernes, 3 de marzo de 2017 22:49
  • Por otro lado, y con independencia del origen de los datos puedes mover el índice de selección y establecer el elemento -seleccionado- a la propiedad Text del cuadro de texto, por ejemplo:

    Private Sub btnRecorrerItems_Click(sender As Object, e As EventArgs)
    
    	ComboBox1.SelectedIndex = If(ComboBox1.Items.Count - 1 = ComboBox1.SelectedIndex,
    		0, ComboBox1.SelectedIndex + 1)
    
    	TextBox1.Text = ComboBox1.Text
    
    End Sub


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    viernes, 3 de marzo de 2017 23:22
  • Gracias , resolvi mi problema, excelente!!!!!

    Cecilia

    sábado, 4 de marzo de 2017 0:41