C#掩码文本框

3
我该如何更改用于输入IP地址的掩码文本框属性?例如:
private void Interneta_savienojums_Load(object sender, EventArgs e)
{
    maskedTextBox1.Text = "   .   .   .   ";
    maskedTextBox1.PromptChar = ' ';
    maskedTextBox1.Mask = "009.009.009.900";
    maskedTextBox1.ResetOnSpace = false;
    maskedTextBox1.SkipLiterals = false;
}

在表单文本框中显示( . . . ),这正是我想要的。当我的输入为 123.123.123.123 时一切都好,但当我输入 23 .1 .001.200 时,返回值是 23 .1 .001.200,但我需要的是 23.1.1.200。如何删除空格并返回正常值?是否可行?

对于 IP 检查,我使用了该解决方案!

try
        {
            IPAddress IP = IPAddress.Parse("127.0.0.000");
            MessageBox.Show(IP.ToString());
        }
        catch (FormatException)
        {
            MessageBox.Show("Wrong ip !");
        }

有人吗?请建议其他输入IP并检查它的方法! - deleted
我很好奇...这个程序会验证插入的IP地址吗?或者你可以输入像999.999.999.999这样的值吗?(这是一个无效的IP地址)。我建议采用@competent_tech的想法,将其拆分为4个单独的字段,然后将每个字段验证为0到255之间的范围。否则,您可能需要实现自己的自定义数据类型进行验证。请参见此处的“备注”部分:http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.validatingtype.aspx - Kjartan
@Kjartan,我发布了你的问题和答案! - deleted
4个回答

3
为什么不考虑创建4个独立的数据输入框来让用户更加方便呢?如果我速度过快或者需要回退,我个人是比较难以应对单一文本框的方法。
然后,你可以在用户离开某个输入框时验证每个输入框的有效数据,以确保他们不会输入错误的值。
如果你有数字编辑文本框的访问权限,甚至可以设置最小和最大值(或者你可以自己实现)。

使用这个,我将更难检索现有的本地地址。 - deleted

2

试试这段代码

var input = "009.009.009.900";
var result = input.Trim();

你可以在同一个域名下使用这些函数。
String.Trim
String.TrimEnd
String.TrimStart
String.Remove

2
你可以在访问文本属性时删除空格,例如:
maskedTextBox1.Text.Replace(" ", "");

谢谢,这个很好用,但我找到了更好的方法,可以转换并检查有效性,不过还是先谢谢你! - deleted

1

是的,这是可能的,请查看MaskedTextBox.Mask Property,根据MSDN的说明

9-数字或空格,可选。

尝试使用掩码进行操作


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接