Member 11004573 Ответов: 5

Удалить номер один за другим в C#


Привет,

Я создал калькулятор с очень хорошим графическим интерфейсом, но я хочу, чтобы пользователи моего калькулятора удаляли числа по одному, а не очищали все сразу из текстового поля. Как написать код для кнопки backspace? Нужно ли мне действительно создавать кнопку или есть способ написать код для каждой кнопки btn1, btn2 и т. д., который позволит пользователю уменьшать числа по одному?

Например, я хочу ввести 123 и по ошибке набрал 132, и я хочу удалить 32 вместо того, чтобы очистить все числа, включая одно.

ваша помощь необходима..

Tomas Takac

Как написать код для кнопки backspace?
Обрежьте самую правую цифру. Где же подвох?

Нужно ли мне действительно создавать кнопку или есть способ написать код для каждой кнопки btn1, btn2 и т. д., который позволит пользователю уменьшать числа по одному?
Мне не совсем ясно, что вы имеете в виду.

5 Ответов

Рейтинг:
2

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Ссылаться - Простой калькулятор на языке Си#[^]

Цитата:
private void btnBackspace_Click(object sender, EventArgs e)
{
    //backspace
    if (txtResult.Text != string.Empty)
    {
        int txtlength=txtResult.Text.Length;
        if (txtlength != 1)
        {
            txtResult.Text = txtResult.Text.Remove(txtlength - 1);
        }
        else
        {
            txtResult.Text = 0.ToString();
        }        
    }
}


Member 11004573

Спасибо,что ответили мне, но этот код работает не очень хорошо.Пожалуйста, скажите мне другой метод, потому что когда я нажимаю кнопку, то все номера удаляются из текстового поля .

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Вы отладили и посмотрели, в чем проблема?

Member 11004573

Да, я запускаю весь код, когда нажимаю кнопку, а затем удаляю все данные из текстового поля.

Tadit Dash (ତଡିତ୍ କୁମାର ଦାଶ)

Это прекрасно. Я говорю вам, вы поместили точку останова внутри функции и отладили ее, чтобы увидеть, что происходит внутри нее?

Рейтинг:
1

ClimerChinna

используйте приведенный ниже код

string s = "0";
        if (TextBox1.Text.Length > 1)
        {
            s = TextBox1.Text;
            s = s.Substring(0, s.Length - 1);
        }
        TextBox1.Text = s;


Рейтинг:
1

majid torfi

    private void button1_Click(object sender, EventArgs e)
        {
//backspace
             string temp= textBox1.Text;
             if (temp.Length != 0)
             {
                 textBox1.Text = temp.Substring(1);
             }
        }


Рейтинг:
0

Renju Vinod

Привет,

Пожалуйста, попробуйте это.

private void button1_Click(object sender, EventArgs e)
        {
            textBox1.Focus();
            Application.DoEvents();
            SendKeys.Send("{BACKSPACE}");
        }


Рейтинг:
0

Member 14849756

частная button10_Click недействительным(объект отправителя, EventArgs в электронной)
{
int x = result.Text.Length - 1;
результат.Text = result.Text.Substring(0, x);
if (result.Text.Length == 0)
{
результат.Текст = "0";
}
}