我使用的表單需要複製粘貼的URL。我想要一個textChanged事件,它會在粘貼時立即檢查URL,告訴用戶它是否有效。我還希望能夠在發生這種情況時鎖定文本框,並且顯示一條消息,如「正在處理...」。使用TextChanged禁用文本框事件
問題出在下面的代碼中,文本框永遠不會被禁用,程序將執行checkUrl()方法,並且文本框永遠不會被禁用,即使它是第一次執行(我認爲它是但事實存在在它下面的函數調用正在搞亂某些東西或獲得更高的優先級)。
我該如何在方法運行時將控件視覺禁用?
private void urlTxtBx_TextChanged(object sender, EventArgs e)
{
urlTxtBx.Enabled = false;
checkUrl();
urlTxtBx.Enabled = true;
}
您在checkUrl();之後立即重新啓用它。該方法需要多長時間?如果它只是驗證一個URL,那麼我懷疑它是非常長的,所以禁用文本框沒什麼意義? – dtsg 2012-07-24 08:45:37
你確定它沒有被禁用?如果'checkUrl()'執行得太快,所以你看不到它呢?調試一下。 – Schaliasos 2012-07-24 08:45:47
在禁用文本框之後放置一個消息框,這樣您可以暫停代碼並查看它是否有效,如果確實如此,它可能只是執行'checkUrl()'足夠快以在您注意到之前重新啓用文本框。 – 2012-07-24 08:48:06