我的表单上有14个命令按钮。我想要做的是根据当前日期更改表单的文本。 button1应该有今天的日期。 button2应该有tommorows日期。 button3应该在明天日期之后有一天,依此类推。我想要十四个按钮。
我可以通过为每个日期分配每个button.text来手动完成...我想使用循环来完成它。可能吗。 我的按钮被命名为button1,button2,button3,button4等收费按钮14。 我想要的文字是从当前日期到14天后...... basiocally想要在按钮上显示日期.. 循环可能吗? m使用visual studio和vb.net
答案 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