2010-02-03 37 views
1

使用VB.Net我想自動調整DataGridView中頭部的高度,以便在填充數據後在表單加載過程中調用AutoResizeColumnHeadersHeight。AutoResizeColumnHeadersHeight僅在設置斷點時纔有效!

的方法似乎並不做任何事情,但如果我做了以下沒有問題: - 穿上grid.AutoResizeColumnHeadersHeight() 斷點 - 打開快速監視對電網 - 擴展子屬性 - 關閉quickwatch並按F5繼續處理

調整大小然後工作!

我假設原因是評估網格的屬性之一是導致方法行爲不同。

有人知道我應該採取什麼不同的做法或解決方法 - 例如哪些屬性需要評估才能使其工作?

回答

3

您是否100%確定此代碼在Load事件中運行?使用Handle屬性可確保創建控制窗口並自動縮放以適應機器的視頻適配器和系統字體設置。如果代碼由於Load事件而實際運行,那麼這絕不是必須的,所有的控件的Handle都將在那時被創建。

請注意,AutoResizeColumnHeadersHeight()實際上是手動調整大小,它只能工作一次。雖然它會自動計算高度。要獲得自動調整大小,請將ColumnHeadersHeightSizeMode屬性設置爲AutoSize。

+0

呃,你是對的,它已經被移動到從New調用的InitializeComponent中運行。 雖然我希望手動調整大小,但如果用戶願意,可以讓用戶進行更改。 – 2010-02-03 13:45:01

0

找到一種解決方法,該方法可以正常工作,如果我像以前一樣添加一行:

Dim workaround As System.IntPtr = grid.Handle 
grid.AutoResizeColumnHeadersHeight() 

我仍然有興趣在一個更好的答案,但。

相關問題