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

309
30 января 2017, 15:53

Каким образом работает 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. Почему так происходит?

Answer 1

потому что последнее значение в стэке, такое же, как текущее значение в текстбоксе

if (output_tb.Text != undoActions.Peek())
  undoActions.Push(output_tb.Text);
READ ALSO
Химия 8 класс контрольная [требует правки]

Химия 8 класс контрольная [требует правки]

В воде 150г раствором 20г гидроксида натрия рассчитайте массовую долю гидроксид натрия в получении раствора вычислите количество молекул...

298
AJAX в ASP.NET MVC 4

AJAX в ASP.NET MVC 4

Имеется форма с ненавязчивым Ajax, настройки для формы - ajaxOpt

552
Jint подключение DOM c#

Jint подключение DOM c#

Есть проблема, есть код JavaScript который использует DOM, код парсится с веб страницы так что переписать его нету возможности, для обработки JavaScript...

389
Частичное представление

Частичное представление

В Home контроллере есть два метода:

293