我正在使用MSVS2010,但在创建状态栏或状态栏时遇到问题。我有一个循环,做一些事情并运行一些功能。这是一个“while”循环。我需要做的就是在循环内部显示某种形式的“忙......”或“工作......”。有没有人具有如何实现这一目标的具体分步说明?我已经在线查看了教程和示例,但我并没有清楚地知道如何实现这一目标。对此的任何帮助都会很棒。提前谢谢。
答案 0 :(得分:1)
您可以使用标签。
只需添加标签并为其命名,例如stateLabel
然后在你的代码中,就像这样做:
stateLabel.text = "Working..."; //Change the text of the Label
while(statement = true) //Your Loop
{
//Do your work
}
stateLabel.text = "Finished work";
答案 1 :(得分:0)
简单的方法是使用带有'选框的进度条。风格属性,善于让用户等待某事。 所以设置'选取框'循环之前的属性,然后你可以回到默认值和/或在循环后隐藏这个进度条。 我是否足够清楚或者你想要一些代码示例?
答案 2 :(得分:0)
你可以做一些简单的事情,比如改变光标:
//change cursor to wait cursors
this.ForceCursor = Cursors.Wait;
//do loop
while(true)
{//do work}
//change the cursor back to regular arrow when work is completed
this.ForceCursor = Cursors.Arrow;
或者,只要你没有在while循环中对UI控件做任何事情,你就可以在另一个线程上进行循环。只需在窗口的某个位置放置一个进度条(称之为myProgBar),如果不知道循环将花多长时间,请将其设置为不确定。以下是我将如何做到这一点:
//create instance of loading window
YourLoadWindow loadWin = new YourLoadWindow();
//Create a thread that will do our loop work.
Thread t = new Thread(new ThreadStart(() =>
{
//do our looping;
while (true) {//do work}
//when loop is done, we want to hide the loading window
//but we created it on a different thread, so we must use its dispatcher to do
//the work from this thread
loadWin.Dispatcher.Invoke(new Action(() => { loadWin.Close(); }));
}));
//show load window
loadWin.Show();
//start doing our work
t.Start();