如何使用按键动态格式化字符串
本文关键字:格式化 字符串 动态 何使用 | 更新日期: 2023-09-27 18:08:58
我想在用户将值输入文本框时更改文本。
:
1 = 1
12 = (12)
123 = (12) 3
1234 = (12) 34
我写了这样的代码:
private void txtFoneres_KeyDown(object sender, KeyEventArgs e)
{
string p1 = e.KeyData.ToString();
if (p1.StartsWith("D"))
{
p1 = p1.Replace("D", "");
}
if (p1.StartsWith("NumPad"))
{
p1 = p1.Replace("NumPad", "");
}
if (txtFoneres.TextLength == 1)
{
txtFoneres.Text = txtFoneres.Text + "(" + p1 + ")";
txtFoneres.SelectionStart = 2;
txtFoneres.SelectionLength = 2;
}
}
使用我的代码,结果如下:
"1" = "1
"12" = "1(2" (this is the problem, it would have to start with "("
有谁知道怎么把1(2)换成(12)吗?
我会尝试使用一个MaskedTextBox用一行像
这样的代码private void maskedTextBox1_KeyUp(object sender, KeyEventArgs e)
{
if (maskedTextBox1.Text.Length == 1)
{
maskedTextBox1.Mask = "(00) 00";
maskedTextBox1.SelectionStart = 2;
}
}