繁体   English   中英

如果数字大于文本框中的数字

[英]If number is greater than in textbox

好吧,如果我有这段代码,我想寻求帮助,我想知道是否有一种方法可以检测该数字是否大于文本框中的数字?

if (textbox1.text == "2")
{
     //code
}

而且我想知道是否仍然可以检测该数字是否大于该数字,所以说textbox1.text = "5"它大于2,因此它是否从if命令执行代码?

int value;
if (Int32.TryParse(textbox1.Text, out value))
{
   if (value > 2)
     // code
}
else
{
    // not a number in textbox
}

实际应用示例:

TimeSpan timeOfDay = DateTime.Now.ToLocalTime().TimeOfDay;

if (8 < timeOfDay.Hours && timeOfDay.Hours < 16)
{
    // day
}
else
{
    // night
}

您可以创建扩展方法:

public static bool IsDayTime(this DateTime date)
{
    TimeSpan timeOfDay = date.TimeOfDay;
    return 8 < timeOfDay.Hours && timeOfDay.Hours < 16;
}

并以这种方式使用它:

var date = DateTime.Now.ToLocalTime();
var file = Path.Combine(Folder, date.IsDayTime() ? "Day.bmp" : "Night.bmp");
picThumbnail.ImageLocation = file;
picThumbnail.SizeMode = PictureBoxSizeMode.Zoom;
SystemParametersInfo(20, 0, file, 0x01 | 0x02);
var rkWallPaper = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
rkWallPaper.SetValue("WallpaperStyle", 2);
rkWallPaper.SetValue("TileWallpaper", 0);
rkWallPaper.Close();

解析文本值,然后检查...

if(Convert.ToInt32(Textbox.Text) > 2) { //Do something here }

if(Int32.Parse(textbox1.text) < number)
{
   // code
}

并捕获无效值情况下的所有异常。 或使用带有out参数的TryParse并返回是否实际解析了一个数字。

您需要将文本解析为数字,然后就可以执行所需的操作。

C#的Int32类具有一个TryParse方法,您可以这样使用:

bool result = Int32.TryParse(textbox1.text, out number);

if (number > 2)
{
  ...
}

这是一种具有输入值输出值的方法。 bool结果实际上是指示尝试解析输入值的尝试(“尝试”)是否有效的方法,您可以按如下所述进行防御性使用:

bool result = Int32.TryParse(textbox1.text, out number);

if (result)
{
  // the parse worked
  // do something with 'number'
}
else
{
    Messagebox.Show(string.Format("Could not convert {0} to a number", textbox1.text));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM