private Position RollBack() { Position CurP = _Stack.Pop(); Position BackP = _Stack.First(); _ChessBoard.Board[CurP.xPos, CurP.yPos].value = 0; _ChessBoard.CalculateLockProbability(CurP); _ChessBoard.CalculateLockProbability(BackP); if (!chkGraphic.Checked) { foreach (Control ctrl in pnlChess.Controls) { { if (ctrl.Name == "button" + (((CurP.yPos) * 8) + CurP.xPos + 1).ToString()) { this.Invoke(new MethodInvoker(delegate { ctrl.Text = _ChessBoard.Board[CurP.xPos, CurP.yPos].Rank.ToString(); //ctrl.BackgroundImage = Properties.Resources.knight002; ctrl.BackColor = SystemColors.Control; })); } } } } return(BackP); }