Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 基于文本框值启用和禁用按钮_C#_Asp.net_Webforms - Fatal编程技术网

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

C# 基于文本框值启用和禁用按钮,c#,asp.net,webforms,C#,Asp.net,Webforms,我有24个按钮,上面写着时间,24小时 首先是button1.Text=“01:00”,button2.Text=“02:00”,button3.Text=“03:00”等等……直到button24.Text=“00:00” 我有两个文本框(workStart.Text和workfinishs.Text),用户在其中键入不同的时间,有些天他们工作10小时,有些天工作时间更短 例如workStart.Text=“08:00”和workfinishs.Text=“18:00”。因此,从08:00到1

我有24个按钮,上面写着时间,24小时

首先是
button1.Text=“01:00”
button2.Text=“02:00”
button3.Text=“03:00”
等等……直到
button24.Text=“00:00”

我有两个文本框(
workStart.Text
workfinishs.Text
),用户在其中键入不同的时间,有些天他们工作10小时,有些天工作时间更短

例如
workStart.Text=“08:00”
workfinishs.Text=“18:00”
。因此,从08:00到18:00范围内的所有按钮都必须启用,在这种情况下,其余按钮必须禁用(根据文本框值)


如果有人能帮助解决这个问题,我将不胜感激。

您可以将文本转换为时间跨度,然后根据按钮的时间是否在范围内设置按钮的
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;
}
var workStartTime=TimeSpan.Parse(workStart.Text);
var workEndTime=TimeSpan.Parse(workEnd.Text);
foreach(所有按钮中的var按钮)
{
var buttonTime=TimeSpan.Parse(button.Text);

button.Enabled=buttonTime>=workStartTime&&buttonTime您可以将文本转换为时间跨度,然后根据按钮的时间是否在范围内设置按钮的
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;
}
var workStartTime=TimeSpan.Parse(workStart.Text);
var workEndTime=TimeSpan.Parse(workEnd.Text);
foreach(所有按钮中的var按钮)
{
var buttonTime=TimeSpan.Parse(button.Text);
button.Enabled=buttonTime>=workStartTime&&buttonTime
String.Compare()
将用于比较。要获取所有按钮,可以使用按钮父级的
var buttons=ButtonParent.Controls.OfType().ToList()
,也可以自己将它们放入数组中,如
var buttons=new button[]{button1,button2,…}

然后:

foreach(按钮中的变量btn)
btn.Enabled=string.Compare(btn.Text,workStart.Text)>=0&&
string.Compare(btn.Text,workfinishs.Text)
string.Compare()
将用于比较。要获取所有按钮,您可以使用按钮父级的
var buttons=buttonsParent.Controls.OfType().ToList()
,或者您可以自己将它们放入一个数组中,如
var buttons=new Button[]{buttonn1,buttonn2,…

然后:

foreach(按钮中的变量btn)
btn.Enabled=string.Compare(btn.Text,workStart.Text)>=0&&

string.Compare(btn.Text,workfinishs.Text)很高兴我能帮上忙。它应该是这样的:
var currentTime=DateTime.Now;currentTime=currentTime.AddHours(1);
或者更简单:
var currentTime=DateTime.Now.AddHours(1)
我感谢您的帮助,它可以完美地工作。我很难解决上述问题的另一件事,我需要获取当前时间
var currentTime=DateTime.Now.AddHours(1);
将其与启用的按钮进行比较,如果当前时间(+1小时)大于按钮中的时间它应该禁用此按钮,因为它已通过。由于比较是在字符串中进行的,您应该执行以下操作:
if(string.Compare(DateTime.Now.AddHours(1).ToString(“HH:mm”),btn.Text)>=0)..
很高兴我能帮上忙。它应该是这样的:
var currentTime=DateTime.Now;currentTime=currentTime.AddHours(1);
或者更简单:
var currentTime=DateTime.Now.AddHours(1)
我感谢您的帮助,它可以完美地工作。我很难解决上述问题的另一件事,我需要获取当前时间
var currentTime=DateTime.Now.AddHours(1);
将其与启用的按钮进行比较,如果当前时间(+1小时)大于按钮中的时间。应禁用此按钮,因为它已通过。当比较是字符串形式时,应执行以下操作:
if(string.Compare(DateTime.Now.AddHours(1).ToString(“HH:mm”),btn.Text)>=0)…