我有一个TextBox供用户输入数字。
当用户输入TextBox时,格式应该是这样的
01-22-34-40-33
我想插入" - "在TextChanged事件处理程序中的2位数之后。
我这样做但没有工作:
if(txtRandomThirdTypeSales.Text.Length == 2)
{
txtRandomThirdTypeSales.Text += "-";
}
else if (txtRandomThirdTypeSales.Text.Length == 5)
{
txtRandomThirdTypeSales.Text += "-";
}
else if (txtRandomThirdTypeSales.Text.Length == 8)
{
txtRandomThirdTypeSales.Text += "-";
}
else if (txtRandomThirdTypeSales.Text.Length == 11)
{
txtRandomThirdTypeSales.Text += "-";
}
答案 0 :(得分:3)
请你试试这个,这可能会对你有所帮助。
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
string sVal = textBox1.Text;
if (!string.IsNullOrEmpty(sVal) && e.KeyCode != Keys.Back)
{
sVal = sVal.Replace("-", "");
string newst = Regex.Replace(sVal, ".{2}", "$0-");
textBox1.Text = newst;
textBox1.SelectionStart = textBox1.Text.Length;
}
}
如果您需要帮助,请告诉我。
答案 1 :(得分:1)
也许你可以试试这个
if(txtRandomThirdTypeSales.Text.Count(x => x != '-') % 2 == 0)
{
txtRandomThirdTypeSales.Text += "-";
}
这样它会计算所有不是-
的字符,并检查它们是否均匀。如果是,请添加' - '。
您可以通过检查它们是带有正则表达式的数字来限制它。 ^\d
答案 2 :(得分:1)
你能试试吗
if(txtRandomThirdTypeSales.Text.Length % 3 == 2)
{
txtRandomThirdTypeSales.Text += "-";
}
您还可以添加代码来处理退格键和删除键。
答案 3 :(得分:0)
您是否尝试过TextBox屏蔽?它在Winform控件中可用
以下是您的参考http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx