2017-03-07 43 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-不接受-的回答工作) –