如何从用户输入中检查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语句不会检测到它是nullEmpty

如何从用户输入中检查MaskedTextBox是否为空

您可以简单地使用:

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;
}