我想在用戶鍵入值到文本框中時更改文本。如何使用keydown動態格式字符串
這樣:
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 for(12)?
一行代碼什麼是你正在尋找你的「()」插入確切的規則是什麼?如果兩個或兩個以上的數字加起來()圍繞前兩個? – LightStriker
這就像你試圖重新創建一個面具輸入?有控制,可以做到這一點,如果你使用的WinForms或WebForms – codingbiz