none
Simplificar multiples Label Text igual a...

    Pregunta

  • Hola.

        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Label01.Text = (Mid(LabelPalabra.Text, 1, 1))
            Label02.Text = (Mid(LabelPalabra.Text, 2, 1))
            Label03.Text = (Mid(LabelPalabra.Text, 3, 1))
            Label04.Text = (Mid(LabelPalabra.Text, 4, 1))
            Label05.Text = (Mid(LabelPalabra.Text, 5, 1))
            Label06.Text = (Mid(LabelPalabra.Text, 6, 1))
            Label07.Text = (Mid(LabelPalabra.Text, 7, 1))
            Label08.Text = (Mid(LabelPalabra.Text, 8, 1))
            Label09.Text = (Mid(LabelPalabra.Text, 9, 1))
            Label10.Text = (Mid(LabelPalabra.Text, 10, 1))
            'ETC
            'ETC
            '...
        End Sub

    Hay algún método para obtener el mismo resultado sin tantas líneas?

    Gracias por su ayuda.


    Rafael FM

    viernes, 7 de octubre de 2016 17:33

Respuestas

  • RafaelFM,

    Puedes hacer lo siguiente:

    Dim index As Integer = 0
    For Each lbl As Label In Controls.OfType(Of Label)().
    	Where(Function(l) l.Name.StartsWith("Label")).OrderBy(Function(l) l.Name)
    	lbl.Text = LabelPalabra.Text.Substring(index, 1)
    	index += 1
    Next


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta RafaelFM viernes, 7 de octubre de 2016 18:32
    viernes, 7 de octubre de 2016 18:04

Todas las respuestas

  • RafaelFM,

    Puedes hacer lo siguiente:

    Dim index As Integer = 0
    For Each lbl As Label In Controls.OfType(Of Label)().
    	Where(Function(l) l.Name.StartsWith("Label")).OrderBy(Function(l) l.Name)
    	lbl.Text = LabelPalabra.Text.Substring(index, 1)
    	index += 1
    Next


    Espero que la información proporcionada te haya sido de utilidad, quedo atento a tus comentarios.
    • Marcado como respuesta RafaelFM viernes, 7 de octubre de 2016 18:32
    viernes, 7 de octubre de 2016 18:04
  • Gracias por la respuesta Willams Morales

    Tengo algunos Label llamados L1, L2, L3, etc...

    Y de la siguiente forma, funciona perfectamente:

            Dim index As Integer = 0
            For Each lbl As Control In Controls.OfType(Of Label)().Where(Function(l) l.Name.StartsWith("L")).OrderBy(Function(l) l.Name)
                lbl.Text = LabelPalabra.Text.Substring(index, 1)
                index += 1
            Next
    Gracias de nuevo.


    Rafael FM

    viernes, 7 de octubre de 2016 18:32