2010-07-28 55 views
0

我使用C#+ winforms來開發軟件。
我有一個包含幾個DataGridView的一個用戶控件爲什麼Invalidate()應該在控件外調用,那麼它可以工作?

datagridview1.datasource = from p in dc.doctor select p; 

我使用LINQ to SQL來填充與數據源DataGridView的,因爲我需要刷新的數據源更新記錄,所以我創建了一個新的datacontext和分配數據源再次。

datagridview1.datasource = from p in dc.doctor select p; 

起初,我發現,雖然我重新設置數據源,在DataGridView仍然不能得到刷新,有人告訴我,我應該呼籲DataGridView中無效的功能,我試過了。它在一定程度上起作用。 但如果我在UserControl的類中調用Invalidate,它將無法工作。
如果我在UserControl的類上創建一個公共函數,然後用userControl.refreshRecord()調用它,然後它就可以工作。

有人能指點我,我錯過了什麼?當有人稱無效時,它何時會真正起作用?
在此先感謝!

+0

它沒有被稱爲包含控制這就是問題之內,它被認爲不具有所期望的某些特定消息的處理期間調用影響。 – 2010-07-30 04:08:17

回答

0

的Invalidate工作時的控制完成所有其他的東西,如數據載入中...

-1

調用dgv.Invalidate() datagridview的方法。

+0

你讀完我的問題了嗎?我調用了invalidate函數,但是如果我在控件中調用它,它將不起作用。我必須在用戶控件之外調用它,然後才能正常工作。 – MemoryLeak 2010-07-28 03:55:17

+0

奇妙的正確答案是,它的工作原理,你錯了。哇,什麼病人 – Rohit 2010-07-31 02:38:40

相關問題