Каким образом работает 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. Почему так происходит?
потому что последнее значение в стэке, такое же, как текущее значение в текстбоксе
if (output_tb.Text != undoActions.Peek())
undoActions.Push(output_tb.Text);
Продвижение своими сайтами как стратегия роста и независимости