[英]C# Removing last two characters from textbox
我有一個文本框,正在嘗試對電話號碼實施自動格式化。
如果用戶按下Delete鍵,並且文本框中字符串的最后一個字符為'-'
我想刪除文本框中的最后兩個字符。
我正在嘗試通過除去子串來做到這一點,但是沒有運氣。 謝謝
private void phoneNumberTextBox_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Back)
{
if (phoneNumberTextBox.Text.Length != 0)
{
if (Convert.ToChar(phoneNumberTextBox.Text.Substring(phoneNumberTextBox.Text.Length - 1)) == '-')
{
phoneNumberTextBox.Text.Substring(0, phoneNumberTextBox.Text.Length - 2);
}
}
}
Substring()
返回一個新的字符串實例,並使當前實例保持不變。 因此,您的呼叫只會創建一個新的臨時字符串,但由於您不對其進行任何操作,因此會立即將其丟棄。
為了使更改生效,您需要將Substring()
的結果分配回文本框,如下所示:
phoneNumberTextBox.Text = phoneNumberTextBox.Text.Substring(0,
phoneNumberTextBox.Text.Length - 2);
確保先檢查字符串的長度,以避免處理短字符串(少於2個字符)時出現問題。
另外,如果要限制文本框中的字符數,請改用MaxLength
屬性。 您不必處理長度和鍵入方式。
對於2個字符的刪除可以做到:
phoneNumberTextBox.Text = phoneNumberTextBox.Text.Remove(phoneNumberTextBox.Text.Length - 2, 2);
對於按鍵部分,可能是您必須在窗體上啟用KeyPreview。
哇,編輯們總是犯錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.