我的代码需要一些帮助。
我需要以下格式,
12345-1234567-1
基本上我只想输入数字,当文本长度达到5时,它应该附加' - '并再次达到13的长度,再次它应该附加' - '。
我的代码做得很好。但是当我使用退格/删除时,它总是将' - '附加到第6和第14位。
这是我的代码,
private void nicNo_txt_KeyUp(object sender, KeyEventArgs e)
{
if (e.KeyCode.ToString() != "Back" || e.KeyCode.ToString() != "Space" || e.KeyCode.ToString() != "Delete")
{
if (nicNo_txt.TextLength == 5 || nicNo_txt.TextLength == 13)
nicNo_txt.AppendText("-");
}
}
此致
答案 0 :(得分:4)
您是否尝试过MaskedTextBox,您可以在其中指定任何需要的掩码
答案 1 :(得分:1)
以下一个会做
在更改后进行格式化 - 将格式方法替换为您喜欢的任何内容:
void oTextBoxAmount_TextChanged(object sender, EventArgs e)
{
//throw new NotImplementedException();
if (sender is TextBox)
{
TextBox tb = sender as TextBox;
tb.Text = FormatAmount(tb.Text);
tb.SelectionStart = tb.Text.Length;
}
}
对于过滤密钥(以下示例过滤数字,但您可以更改条件):
void oTextBoxAmount_KeyPress(object sender, KeyPressEventArgs e)
{
int val = (int)e.KeyChar;
if (val >= 0x30 && val <= 0x39)
{
//Digits are ok
}
else if (val == 0x08)
{
//Backspace is ok
}
else
{
//Other are disallowed
e.Handled = true;
}
}
答案 2 :(得分:0)
您可以使用AJAX Control Toolkit Masked Edit。它完全符合您的要求。