我想向用户显示一些文字并暂停代码。读完文后,他应该用一个按钮继续。 这就是我得到的:
bool weiter = false;
private void xy()
{
//some code before
label1.Text = "Some text here";
button2.Visible = true;
while (!weiter)
{
}
button2.Visible = false;
weiter = false;
//some code afterwards
}
private void button2_Click(object sender, EventArgs e)
{
weiter = true;
}
问题:表单已冻结,按钮不会弹出... 谢谢你的帮助!
答案 0 :(得分:0)
如果在主线程上放置一个无限循环,则其他代码将无法执行(包括侦听按钮点击的UI代码)。难道你不能简单地重新构建代码看起来更像这样:
private void xy()
{
//some code before
label1.Text = "Some text here";
button2.Visible = true;
}
private void button2_Click(object sender, EventArgs e)
{
button2.Visible = false;
//rest of your code
}
答案 1 :(得分:0)
如果您在while
循环Applicaion.DoEvents();
表格的大括号之间书写,则不会冻结。
答案 2 :(得分:0)
MessageBox.Show(string)
https://msdn.microsoft.com/en-us/library/519bytz3%28v=vs.110%29.aspx就是这样做的。它会显示一个消息框并阻止,直到用户点击"确定"。