在C#中按退格键时的TextBox按键事件

时间:2016-12-19 16:50:48

标签: c# keypress backspace

应该删除字符串的最后一个字符

    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;
    }

1 个答案:

答案 0 :(得分:1)

此代码中的问题是您在更改字符串时不会分配字符串的值。这是因为String.Remove()返回一个字符串而不是直接更改字符串

sssnumber.Remove(sssnumber.Length - 1);

将从字符串末尾删除字符,然后处理结果

sssnumber = sssnumber.Remove(sssnumber.Length - 1);

另一方面,将执行相同操作,但随后将sssnumber的值设置为已删除的值。