Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

textbox.Text=stack.Pop() не работает

#c_sharp #stack


Каким образом работает stack.pop() ?
Хочу реализовать функцию Undo

Записую в Stack текст с формы при изменении текста

private void Output_tb_TextChanged(object sender, EventArgs e)
{
    undoActions.Push(output_tb.Text);
}


Здесь возвращаю текст при нажатии кнопки Undo

private void Undo_bt_Click(object sender, EventArgs e)
    {
        if (undoActions.Count<1)
        {
            return;
        }

        output_tb.Text = undoActions.Pop();


Но прежнее состояние текста появляется только при втором нажатии на кнопку Undo.
Почему так происходит?
    


Ответы

Ответ 1



потому что последнее значение в стэке, такое же, как текущее значение в текстбоксе if (output_tb.Text != undoActions.Peek()) undoActions.Push(output_tb.Text);

Комментариев нет:

Отправить комментарий