在 Windows 窗体中,我有一个搜索框,它触发一个事件来搜索远程数据库并显示一些结果。查询非常快,通常只有几分之一秒,但如果延迟很明显,表单的状态栏中会有一个进度条和标签。当用户点击“搜索”时,状态标签应该会出现,并且进度条会显示一些进度。然后当结果回来时,标签应该消失并且进度条应该是完整的。很基本的回应。
问题是,我不能让这些动作按那个顺序发生。使用下面的代码,我单击“搜索”,直到显示结果之前什么都没有发生,然后进度条从 0 填充到 100。标签永远不会出现。我什至在事件发生后立即输入了一个睡眠命令,以确保我不仅错过了它,而且好像前两条语句没有被执行。我在这里做错了什么?
private void searchButton_Click(object sender, EventArgs e)
{
toolStripStatusLabel1.Visible = true;
toolStripProgressBar1.Value = 20;
m_changeRequestedEvents.Fire<String>("SearchTerm", searchTextBox.Text);
toolStripProgressBar1.Value = 100;
toolStripStatusLabel1.Visible = false;
}