在Form可见后,Button.Text正在更改

时间:2015-06-01 13:48:31

标签: c# winforms

我有一个加载Form的按钮,因为它从数据库中获取大量数据并需要几秒钟,我想建议用户等待。

当我点击按钮时,按钮文字不会改变。

这是我正在使用的按钮点击代码:

private void btnItemConfigForm_Click(object sender, EventArgs e)
            {
                var itemConfigBtnText = btnItemConfigForm.Text;
                btnItemConfigForm.Text = "Waiting...";

                ItemConfigForm form = new ItemConfigForm();
                form.Show();

                if (form.Created)
                {
                    btnItemConfigForm.Text = itemConfigBtnText;
                }
            }

如果我发表评论

if (form.Created)
{
    btnItemConfigForm.Text = itemConfigBtnText;
}

然后按钮文本变为等待 后新的表单窗口可见。

在表单窗口可见之前,我想要更改按钮文本。

2 个答案:

答案 0 :(得分:2)

简单的解决方案是添加这一行:

btnItemConfigForm.Refresh();

此行之后

btnItemConfigForm.Text = "Waiting...";

否则只有在功能结束时才会更改按钮的文本,此功能将重绘表格显示!

P.S。 如果您希望表单不会被阻止 - 您可以在asynchronic中使用该功能" Show" (或新)然后您将需要事件在加载表单时通知第一个表单

抱歉我的英语......:)

答案 1 :(得分:0)

已添加

  btnItemConfigForm.Update();

var itemConfigBtnText = btnItemConfigForm.Text;
btnItemConfigForm.Text = "Waiting...";

在继续初始化和显示表单之前,这会更新按钮Control。