【发布时间】:2014-04-08 21:15:38
【问题描述】:
好的,我有一个棋盘应用程序。该应用程序在一个组框中有 64 个面板。这些面板用表达式 CHessBoardPanels{x,y) 标识。我正在使用它来更改面板的背景颜色。我希望在 chessPanel.BackGround 变为红色和面板变回白色之间有一点延迟。(大约 1 到 2 秒的延迟) 我已经尝试过睡眠功能,但它基本上会锁定应用程序,直到任务完成
这是我尝试过的代码:
for (int Row = 7; Row > 3; --Row)
{
chessBoardPanels[ Column ,Row].BackColor = Color.Red;
++Column;
//Add text to Moves TextBox
MovesText.AppendFormat("WhtB {0} {1}{2}", ColumnText, RowText, Environment.NewLine);
MovesTxt.Text = MovesText.ToString();
++ColumnText;
--RowText;
}
//Start White Horizonal Drill
Column = 0;
Thread.Sleep(5000); //This does not delay proerperly
for (int Row = 7; Row > 4; --Row)
{
chessBoardPanels[Column, Row].BackColor = Color.White;
++Column;
//Add text to Moves TextBox
MovesText.AppendFormat("WhtB {0} {1}{2}", ColumnText, RowText, Environment.NewLine);
MovesTxt.Text = MovesText.ToString();
++ColumnText;
--RowText;
}
我正在使用 .Net framework 4.0,因为 Visual Studio 2010 不支持 4.5
【问题讨论】:
-
请修正您的代码格式和缩进。现在它几乎无法阅读。
-
“正确”是什么意思? Sleep 方法应该在应用程序运行时锁定您的应用程序,所以如果它这样做,它会“正常”工作...
-
你已经让线程休眠了,你的问题是:它为什么休眠?
-
我不确定你所说的格式不可读是什么意思....
-
我真正想要的第一个循环是改变 ChessBoardPanels 的背景......然后等待几秒钟......然后将它们改回白色。从昨天早上开始我就一直坚持这个