显示文本,按钮和暂停

时间:2015-03-22 16:54:20

标签: c# .net

我想向用户显示一些文字并暂停代码。读完文后,他应该用一个按钮继续。 这就是我得到的:

        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;
        }

问题:表单已冻结,按钮不会弹出... 谢谢你的帮助!

3 个答案:

答案 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就是这样做的。它会显示一个消息框并阻止,直到用户点击"确定"。