1

我使用的表单需要复制粘贴的 URL。我试图有一个 textChanged 事件,它会在粘贴后立即检查 url,告诉用户它是有效的还是无效的。发生这种情况时,我还希望能够锁定文本框,并显示一条消息,例如“正在处理...”。

问题在于下面的代码,文本框永远不会被禁用,程序将执行 checkUrl() 方法并且文本框永远不会被禁用,即使它是第一个执行的(我认为它是但事实上有一个函数调用正确在它下面是在弄乱某些东西或获得更高的优先级)。

如何在方法运行时使控件在视觉上被禁用?

private void urlTxtBx_TextChanged(object sender, EventArgs e)
{
    urlTxtBx.Enabled = false;

    checkUrl();

    urlTxtBx.Enabled = true;
}
4

1 回答 1

1

我认为这是因为应用程序需要在禁用TextBox. 请尝试以下代码:

private void urlTxtBx_TextChanged(object sender, EventArgs e)
{
    urlTxtBx.Enabled = false;
    Application.DoEvents();
    checkUrl();
    urlTxtBx.Enabled = true;
}

这将使 UI 得到更新。有关更多详细信息,请查看此处

于 2012-07-24T09:19:13.147 回答