我需要一个Maskedtextbox / Textbox,它接受的版本就像:Exaple:X.X.X.X或X.X.X.XX或X.XX.X.X等等(X =一个数字)
是否有可能我不能说字母/符号输入,它必须有4个点,并且它不能为空。 (可能我需要一个Manskedtextbox的文本框)
我在Mask - >下设置了Maskedtextbox的掩码。面具
当前面具= 9.9.9.9 目前我的Maskedtextbox只接受X.X.X.X
请纠正我:) 我学习,所以每一个建设性的批评都是受欢迎的。)
答案 0 :(得分:1)
你可以做这样的事情或使用RegEx我确定
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
bool handled = false;
//test if digit
if (char.IsDigit(e.KeyChar))
{
//only allow 2 digits
//test if length is long enough to contain a prior char
if (textBox1.Text.Length - 1 >= 0)
{
//test if prior char is digit
if (char.IsDigit(textBox1.Text[textBox1.Text.Length -1]))
{
//test if length is long enough to have 2nd prior char
if (textBox1.Text.Length -2 >= 0)
{
//test 2 prior char if it's a digit because you
//only want to allow 2 not 3
if (char.IsDigit(textBox1.Text[textBox1.Text.Length - 2]))
{
handled = true;
}
}
}
}
}
//test if decimal
else if (e.KeyChar.Equals('.'))
{
//only allow 4 decimals
if (textBox1.Text.Count(t => t.Equals('.')).Equals(3))
{
handled = true;
}
else
{
//don't allow multiple decimals next to each other
//test if we have prior char
if (textBox1.Text.Length - 1 >= 0)
{
//test if prior char is decimal
if (textBox1.Text[textBox1.Text.Length - 1].Equals('.'))
{
handled = true;
}
}
}
}
else
{
handled = true;
}
e.Handled = handled;
}
连接设计师的活动......