基于文本框值启用和禁用按钮

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.TextworkFinishes.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;