我正在使用MaskedTextBox
,其中包含以下短日期Mask
:“00/00/0000”。
我的问题是我想知道控件何时为空:
if (string.IsNullOrEmpty(maskedTextBox1.Text))
{
DataTable dt = function.ViewOrders(Functions.GetEid);
dataGridView2.DataSource = dt;
}
它不起作用,当maskedTextBox1
看起来为空(我确定它是)时,if
语句未检测到它是null
或Empty
答案 0 :(得分:18)
您可以简单地使用:
maskedTextBox1.MaskCompleted
或者
maskedTextBox1.MaskFull
用于检查用户是否输入了完整掩码输入的属性。
答案 1 :(得分:2)
我知道这是旧的,但我会首先删除掩码,然后像普通文本框一样检查文本。
maskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
//...Perform normal textbox validation
答案 2 :(得分:2)
我刚遇到这个问题。我需要Masked Value,但如果用户没有在一个步骤中引入任何数据,也需要发送空字符串。
我发现了这个属性 MaskedTextProvider.ToDisplayString所以我使用MaskedTextbox:
maskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
但我总是阅读以下文字:
maskedTextBox.MaskedTextProvider.ToDisplayString()
这样,如果用户没有在控件中引入文本Text属性将为空:
maskedTextBox.Text == string.Empty
当您检测到字符串不为空时,您可以使用包含文字的全文,例如:
DoSomething((maskedTextBox.Text == string.Empty) ? maskedTextBox.Text: maskedTextBox.MaskedTextProvider.ToDisplayString());
或
DoSomething((maskedTextBox.Text == string.Empty) ? string.Empty: maskedTextBox.MaskedTextProvider.ToDisplayString());
答案 3 :(得分:1)
你试过修剪吗?
if(string.IsNullOrEmpty(maskedTextBox.Text.Trim())
答案 4 :(得分:1)
如果设置属性maskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals,则TypeValidationCompleted事件验证将不起作用。要测试短日期maskedtextbox是否为空,您可以使用:
if (maskedTextBox1.Text == " / /")
{
...;
}
答案 5 :(得分:0)
你想用if语句完成什么逻辑?正如你所知,你说的是: 如果文本框为空,请将datagridview2 +的源设置为ViewOrder数据。我不确定你想做什么,但我想如果你有约会我想要加载信息。解决这个问题,你要做的就是添加!在if语句中,如果文本框中有文本,则运行代码。
if( !(string.IsNullOrEmpty(maskedTextBox2.Text)))
答案 6 :(得分:0)
如果Telerik屏蔽了没有MaskCompleted或MaskFull的文本框,那么这将是一个棘手的解决方案:
面具总是包含这样的字符:"_"
我们检查屏蔽文本框:
if (textbox1.Text.Contains("_"))
{
MessageBox.Show("Please enter the correct numbers!","Error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
如果文本框已满,则它不包含"_"
。
答案 7 :(得分:0)
我认为使用掩码“00/00/0000”的 MaskedTextBox (MTB) 是用于测试其空性的错误字符串。这是因为 MTB 不像普通的文本框,必须使用短日期掩码来确定其字符串值。 假设您的表单上有一个 MTB 名称 mskDateOfBirth。为了测试它的空性,需要像下面这样的语句
if (mskDateOfBirth.MaskedTextProvider.ToDisplayString() == "__/__/____")
{
// Do something when true
}
else
{
// Do something when false
}
我已使用 Visual Studio 2019 对此进行了测试,效果很好。希望这会有所帮助。
答案 8 :(得分:-1)
如果空值为“//”,则为其声明一个常量:
const string EmptyDateInput = " / /";
然后你可以反复使用它来比较:
if (maskedTextBox1.Text == EmptyDateInput)
{
}