C# 文本框验证输入格式

C# 文本框验证输入格式,c#,validation,C#,Validation,我只想验证textbox中的用户输入。 问题是,我想验证textbox。文本格式应该只接受00-00000 如果有孩子00-00000-az。。。等等 因此,如果用户即使没有签名也会输入,它将自动调用验证格式。 示例:如果用户输入为18999231 结果必须是:18-99923-1 就是这样。 如果它是输入值,它将变得容易。 这里的另一个问题是用户是否会输入18-79-aa 验证结果为18-00079-aa 我想,如果用户输入,它将在输入2个第一个数字后自动显示-符号,如果用户不输入准确的5个数

我只想验证textbox中的用户输入。 问题是,我想验证textbox。文本格式应该只接受00-00000 如果有孩子00-00000-az。。。等等

因此,如果用户即使没有签名也会输入,它将自动调用验证格式。 示例:如果用户输入为18999231 结果必须是:18-99923-1 就是这样。 如果它是输入值,它将变得容易。 这里的另一个问题是用户是否会输入18-79-aa 验证结果为18-00079-aa

我想,如果用户输入,它将在输入2个第一个数字后自动显示-符号,如果用户不输入准确的5个数字,它也将自动填充零,但它将在第一个符号后显示。最后是当用户输入超过第二个5个数字时,用户将在第二个符号中显示的下一个字母或数字,如果用户输入超过第一个符号后的第二个5个数字,将自动填充


问题是我还不知道代码

我想你应该使用string.format

string.format可以轻松转换文本输入

String.Format("{0:##-#####-#}", 18999231);
结果:18-99923-1

二,


结果:18-00079-aa

您必须对文本更改事件或预览文本更改做大量工作,这取决于它的wpf或winforms,知道光标在哪里,以及可能的正则表达式,以便在任何时候使结果有效。但是,由于您还没有尝试过任何代码,这个问题可能不会持续太久,因为有100个选项变量和实现方法。非常感谢,我将尝试您的建议。我还有一个问题。第二个选项中的base。如果用户像这样输入18-79aa,结果将是18-017aa,对吗?我有一个解决方案,如果你知道的代码,将计数的符号或有分裂。如果是2号,它将转到第二个选项,但如果只是一号,它将检查-号在前2号之后还是在5号之后。你能给我推荐一个代码吗?另外,我在字符串fixednumber=numbers[1]中遇到了一个错误;你可以数一数“-”号包含多少次,然后选择哪种方式。哦,我弄错了,你现在可以试试。我已经修好了
        string input = "18-79-aa";
        string[] numbers = input.Split('-');
        int fixednumber = Convert.ToInt32(numbers[1]);
        string value = fixednumber.ToString("D5");
        string output = numbers[0] + "-" + value + "-" + numbers[2];