簡體   English   中英

C#從文本框中刪除最后兩個字符

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM