我有一个数据网格视图中显示的现有产品列表。用户可以使用此窗口添加新产品x1c 0d1x
一些字段可以被接受为空。文本字段必须只有字符和整数字段必须只有正整数。ID,价格,播放时间和状态必须是正整数。其余的必须是字符,当他们不是空的。我的代码工作,但只有当每个字段可以是空的是空的。它不工作,如果一些是和其他人不是。
如果你能解决接受空int字段的问题,那就太好了。myint.ToString().Length;
似乎不能完成这项工作。也许答案很简单,但我对C#和. Net有点陌生。
这是我写的代码
if (!plist.type.Any() || !plist.author.Any() || !plist.genre.Any() || !plist.format.Any() || !plist.language.Any() || !plist.platform.Any())
{
if (plist.id != Math.Abs(plist.id) || plist.price != Math.Abs(plist.price)
|| plist.playtime != Math.Abs(plist.price) || plist.status != Math.Abs(plist.price))
{
DialogResult = DialogResult.No;
}
else if (plist.type.Any(char.IsDigit) || plist.name.Any(char.IsDigit)
|| plist.author.Any(char.IsDigit) || plist.genre.Any(char.IsDigit)
|| plist.format.Any(char.IsDigit) || plist.language.Any(char.IsDigit) || plist.platform.Any(char.IsDigit))
{
DialogResult = DialogResult.No;
}
else
{
DialogResult = DialogResult.OK;
}
}
else
{
DialogResult = DialogResult.OK;
}
如果还有什么需要澄清的请告诉我。
我很感激你给我的任何建议!
1条答案
按热度按时间a0zr77ik1#
假设类型、作者、流派、格式、语言和平台是必填字段,则应将DialogResult设置为DialogResult。在最下面的else语句中,使用No代替OK。否则,将跳过逻辑并返回错误的结果。
至于空整数长度问题,请确保您没有尝试将null值转换为字符串。考虑使用numericUpDown而不是文本框,因为numericUpDown是为数字设计的。您甚至可以为numericUpDown设置限制,例如设置一个较低的数字限制以防止出现负数。
https://learn.microsoft.com/en-us/dotnet/api/system.windows.forms.numericupdown?view=windowsdesktop-7.0