如何从用户输入中检查MaskedTextBox是否为空
本文关键字:MaskedTextBox 是否 检查 用户 输入 | 更新日期: 2023-09-27 18:24:11
我使用的是MaskedTextBox
,具有以下短日期Mask
:"00/00/0000"
我的问题是,我想知道何时控件为空:
if (string.IsNullOrEmpty(maskedTextBox1.Text))
{
DataTable dt = function.ViewOrders(Functions.GetEid);
dataGridView2.DataSource = dt;
}
它不起作用,当maskedTextBox1
看起来是空的(我确信它是空的)时,if
语句不会检测到它是null
或Empty
。
您可以简单地使用:
maskedTextBox1.MaskCompleted
或
maskedTextBox1.MaskFull
属性,以检查用户是否已输入完整的掩码输入。
我知道这是旧的,但我会先去掉掩码,然后像普通文本框一样检查文本。
maskedTextBox.TextMaskFormat = MaskFormat.ExcludePromptAndLiterals;
//...Perform normal textbox validation
我刚刚遇到了这个问题。我需要掩码值,但如果用户在一个步骤中没有引入任何数据,也需要发送空字符串。
我发现了这处房产MaskedTextProvider.ToDisplayString,所以我将MaskedText框与一起使用
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());
如果设置属性maskedTextBox.TextMaskFormat=MaskFormat.ExcludePromptAndLiterals,则TypeValidationCompleted事件验证将不起作用。要测试短日期maskedtextbox是否为空,您可以使用:
if (maskedTextBox1.Text == " / /")
{
...;
}
你试过修剪吗。
if(string.IsNullOrEmpty(maskedTextBox.Text.Trim())
您试图用if语句实现什么逻辑?正如你所知,你是在说:如果文本框为空,请将datagridview2+的源设置为ViewOrder数据。我不确定你想做什么,但我认为如果你有约会,你希望加载信息。要解决这个问题,你所要做的就是添加!在if语句中,如果文本框中有文本,则运行代码。
if( !(string.IsNullOrEmpty(maskedTextBox2.Text)))
如果Telerik屏蔽的文本框没有MaskCompleted或MaskFull,一个棘手的解决方案是:
掩码总是包含这样的字符:"_"
我们用这个来检查掩码文本框:
if (textbox1.Text.Contains("_"))
{
MessageBox.Show("Please enter the correct numbers!","Error",MessageBoxButtons.OK,MessageBoxIcon.Stop);
return;
}
如果文本框已满,则不包含"_"
。
我认为使用掩码"00/00/0000"的MaskedTextBox(MTB)是一个不正确的字符串,用于测试其空性。这是因为MTB不像普通的文本框,必须使用短日期掩码来确定其字符串值。假设你的表格上有一个MTB名称mskDateOfBirth
if (mskDateOfBirth.MaskedTextProvider.ToDisplayString() == "__/__/____")
{
// Do something when true
}
else
{
// Do something when false
}
我已经使用Visual Studio 2019对此进行了测试,它运行良好。希望这会有所帮助。
如果空值为"//&";,为它声明一个常量:
const string EmptyDateInput = " / /";
然后你可以反复使用它进行比较:
if (maskedTextBox1.Text == EmptyDateInput)
{
}
我测试了这个概念,并在以下语法中取得了成功
if( maskedtextbox_name.MaskkedTextProvider.ToDisplayString() == "__-__-____")
{
// Your function;
}