2017-03-07 57 views
0

我想从数据集中填充几个按钮文本,但我不想写每个命令,有没有办法做到这一点?如何使用循环设置按钮文本属性?

这里是我的代码:

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 
+0

您处于正确的轨道,'For ... Next'是您的方式,但您必须引用您的按钮,以便您可以在迭代过程中有序地检索它们。您可以将它们存储在数组中,也可以从它们的父控件的'.Control'属性(集合)中检索它们。尝试编码它,然后,如果它不起作用,请在此处尝试编码。 – VBobCat

回答

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 & f"找到Button控件,然后将设置.Text财产。

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

+1

非常感谢,这段代码解决了我的问题。再次谢谢 – ElCalefactordeManchuri

+0

@ElCalefactordeManchuri不是问题。请考虑接受答案(在答案左侧打勾) – Bugs

+1

@ElCalefactordeManchuri:请参阅[**如何接受答案工作?**](http://meta.stackexchange.com/questions/5234/how-不接受-的回答工作) –