基于文本框值启用和禁用按钮
Enable and Disable buttons based on textbox values
我有24个按钮,上面写着时间,24小时。
首先button1.Text="01:00"
、button2.Text="02:00"
、button3.Text="03:00"
等等.....直到button24.Text="00:00"
我有两个文本框(workStart.Text
和 workFinishes.Text
),用户在其中输入不同的时间,有些日子他们工作 10 小时,有些日子则更少。
例如 workStart.Text="08:00"
和 workFinishes.Text="18:00"
。因此,在这种情况下,必须启用从 08:00 到 18:00 范围内的所有按钮,并且必须禁用其余按钮(根据文本框值)。
如果有人能帮助解决这个问题,我将不胜感激。
您可以将Texts转换成TimeSpans,然后根据按钮的时间是否在范围内设置按钮的Enabled
属性:
var workStartTime = TimeSpan.Parse(workStart.Text);
var workEndTime = TimeSpan.Parse(workEnd.Text);
foreach (var button in allButtons)
{
var buttonTime = TimeSpan.Parse(button.Text);
button.Enabled = buttonTime >= workStartTime && buttonTime <= workEndTime;
}
String.Compare()
将用于比较。要获取所有按钮,您可以使用按钮父级的 var buttons = buttonsParent.Controls.OfType<Button>().ToList()
,或者您可以自己将它们放在一个数组中,例如 var buttons = new Button[] { button1, button2, ... }
然后:
foreach(var btn in buttons)
btn.Enabled = string.Compare(btn.Text, workStart.Text) >= 0 &&
string.Compare(btn.Text, workFinishes.Text) <= 0;
我有24个按钮,上面写着时间,24小时。
首先button1.Text="01:00"
、button2.Text="02:00"
、button3.Text="03:00"
等等.....直到button24.Text="00:00"
我有两个文本框(workStart.Text
和 workFinishes.Text
),用户在其中输入不同的时间,有些日子他们工作 10 小时,有些日子则更少。
例如 workStart.Text="08:00"
和 workFinishes.Text="18:00"
。因此,在这种情况下,必须启用从 08:00 到 18:00 范围内的所有按钮,并且必须禁用其余按钮(根据文本框值)。
如果有人能帮助解决这个问题,我将不胜感激。
您可以将Texts转换成TimeSpans,然后根据按钮的时间是否在范围内设置按钮的Enabled
属性:
var workStartTime = TimeSpan.Parse(workStart.Text);
var workEndTime = TimeSpan.Parse(workEnd.Text);
foreach (var button in allButtons)
{
var buttonTime = TimeSpan.Parse(button.Text);
button.Enabled = buttonTime >= workStartTime && buttonTime <= workEndTime;
}
String.Compare()
将用于比较。要获取所有按钮,您可以使用按钮父级的 var buttons = buttonsParent.Controls.OfType<Button>().ToList()
,或者您可以自己将它们放在一个数组中,例如 var buttons = new Button[] { button1, button2, ... }
然后:
foreach(var btn in buttons)
btn.Enabled = string.Compare(btn.Text, workStart.Text) >= 0 &&
string.Compare(btn.Text, workFinishes.Text) <= 0;