C# 从文本框中删除最后两个字符
C# Removing last two characters from textbox
我有一个文本框,我正在尝试为 phone 数字实现自动格式化。
如果用户按下删除键并且文本框中字符串的最后一个字符是 '-'
。
,我想删除文本框的最后两个字符
我正尝试通过删除子字符串来完成此操作,但没有成功。谢谢
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()
returns 一个新的字符串实例并保持当前实例不变。因此,您的调用只是创建了一个新的临时字符串,但由于您未对其进行任何操作,它会立即被丢弃。
要使更改生效,您需要将 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。
哇,对不起,编辑到处都是错误。
我有一个文本框,我正在尝试为 phone 数字实现自动格式化。
如果用户按下删除键并且文本框中字符串的最后一个字符是 '-'
。
我正尝试通过删除子字符串来完成此操作,但没有成功。谢谢
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()
returns 一个新的字符串实例并保持当前实例不变。因此,您的调用只是创建了一个新的临时字符串,但由于您未对其进行任何操作,它会立即被丢弃。
要使更改生效,您需要将 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。
哇,对不起,编辑到处都是错误。