在 C# 中按下退格键时的 TextBox 按键事件
TextBox keypress event when backspace is press in C#
应该删除字符串的最后一个字符
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
do
{
本节在文本框中写入字符
if (e.KeyChar >= 48 && e.KeyChar <= 57)
{
textBox1.Text += e.KeyChar.ToString();
textBox1.SelectionStart = textBox1.Text.Length;
}
这是不起作用的退格键部分
if(e.KeyChar == 8)
{
sssnumber = textBox1.Text;
sssnumber.Remove(sssnumber.Length - 1);
textBox1.Text = sssnumber;
}
} while (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != '.'));
e.Handled = true;
}
此代码中的问题是您在更改字符串时没有分配它的值。这是因为 String.Remove()
returns 一个字符串而不是直接更改字符串
sssnumber.Remove(sssnumber.Length - 1);
会去掉字符串末尾的字符,然后处理掉结果
sssnumber = sssnumber.Remove(sssnumber.Length - 1);
另一方面,将执行相同的操作,但随后将 sssnumber
的值设置为删除的值。
应该删除字符串的最后一个字符
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
do
{
本节在文本框中写入字符
if (e.KeyChar >= 48 && e.KeyChar <= 57)
{
textBox1.Text += e.KeyChar.ToString();
textBox1.SelectionStart = textBox1.Text.Length;
}
这是不起作用的退格键部分
if(e.KeyChar == 8)
{
sssnumber = textBox1.Text;
sssnumber.Remove(sssnumber.Length - 1);
textBox1.Text = sssnumber;
}
} while (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
(e.KeyChar != '.'));
e.Handled = true;
}
此代码中的问题是您在更改字符串时没有分配它的值。这是因为 String.Remove()
returns 一个字符串而不是直接更改字符串
sssnumber.Remove(sssnumber.Length - 1);
会去掉字符串末尾的字符,然后处理掉结果
sssnumber = sssnumber.Remove(sssnumber.Length - 1);
另一方面,将执行相同的操作,但随后将 sssnumber
的值设置为删除的值。