在运行时向命令按钮添加文本

时间:2010-01-20 15:07:23

标签: vb.net

我的表单上有14个命令按钮。我想要做的是根据当前日期更改表单的文本。  button1应该有今天的日期。 button2应该有tommorows日期。 button3应该在明天日期之后有一天,依此类推。我想要十四个按钮。

我可以通过为每个日期分配每个button.text来手动完成...我想使用循环来完成它。可能吗。 我的按钮被命名为button1,button2,button3,button4等收费按钮14。 我想要的文字是从当前日期到14天后...... basiocally想要在按钮上显示日期.. 循环可能吗? m使用visual studio和vb.net

5 个答案:

答案 0 :(得分:1)

For Each b As Control In Me.Controls
    If TypeOf b Is Button Then
        Dim i As Integer = CInt(b.Name.Replace("Button", ""))
        If i <= 14 Then
            Dim d As DateTime = DateTime.Now.AddDays(i - 1)
            b.Text = d.ToString("dd MMM yyyy")
            d = d.AddDays(1)
        End If
    End If
Next

将代码放在load事件中。

答案 1 :(得分:1)

您可以尝试类似

的内容
Dim dateVal As DateTime = DateTime.Today
For i As Integer = 1 To 14
    Dim but As Control = Controls("button" & i)
    but.Text = dateVal.ToString("dd MMM yyyy")
    dateVal = dateVal.AddDays(1)
Next

答案 2 :(得分:0)

您可以遍历窗体上的控件集合,如果控件类型是按钮,则可以围绕该代码编写一些规则。

答案 3 :(得分:-1)

Private Sub ApplyDateLabelsToButtons()

    Dim tmpDate As Date = DateTime.Today

    For i As Integer = 1 To 14
        Me.Controls("Button" & i.ToString()).Text = tmpDate.ToShortDateString()
        tmpDate = DateAdd(DateInterval.Day, 1, tmpDate)
    Next

End Sub

答案 4 :(得分:-1)

尝试这样的事情:

我是用C#编写的:

private void Form1_Load(object sender, EventArgs e)
        {
            int v = 0;

            foreach(Control myBtn in this.Controls)
                if (myBtn is Button)
                {
                    myBtn.Text = DateTime.Today.AddDays(v).ToString();
                    v++;
                }
        }

然后提醒你在VB.net中需要它,所以这里是在vb.net:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) 
    Dim v As Integer = 0 

    For Each myBtn As Control In Me.Controls 
        If TypeOf myBtn Is Button Then 
            myBtn.Text = DateTime.Today.AddDays(v).ToString() 
            v += 1 
        End If 
    Next 
End Sub