如何使用循环设置按钮文本属性?

时间:2017-03-07 12:58:15

标签: vb.net

我想从数据集填充几个按钮文本,但我不想写每个命令,有什么办法吗?

这是我的代码:

Sub carga(ByVal boton As Integer)

    Dim consulta() As cocinaDataSet.PRODUCTOSRow
    Dim cantidad As Integer
    consulta = CocinaDataSet.PRODUCTOS.Select()
    cantidad = consulta.Length
    Dim desde As Integer
    desde = (boton - 1) * 60
    Dim hasta As Integer
    hasta = cantidad

    If (desde > cantidad) Then
    Else
        Button1.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button2.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button3.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button4.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button5.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button6.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button7.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button8.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button9.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button10.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button11.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button12.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button13.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button14.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button15.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button16.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button17.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button18.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button19.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button20.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button21.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button22.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button23.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button24.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button25.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button26.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button27.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button28.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button29.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button30.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button31.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
    If (desde > cantidad) Then
    Else
        Button32.Text = consulta(desde).NOMBRE
        desde = desde + 1
    End If
End Sub

我希望存在这样的事情:

For f = 1 To consulta.Length
    button & f .text = consulta(f).NOMBRE
Next

1 个答案:

答案 0 :(得分:1)

这样的事情可能会让你得到你想要的东西:

For f = 1 To consulta.Length - 1

    Dim btn As Button = CType(Me.Controls("Button" & f.ToString()), Button)

    btn.Text = consulta(f - 1).NOMBRE.ToString()

Next

这段代码会根据Button找到"Button & f"控件,然后设置.Text属性。

注意consulta(f - 1)consulta将基于零,因此从0开始。由于f从1开始,您需要扣除1,这样您就不会错过consulta中的任何项目。我建议通过调试来检查索引,并确保它们符合您的预期。您可能还想再次使用consulta.Length - 1,因为consulta基于零。