我想添加一個體面的AutoResize
機制到我的列表視圖,但我不知道該怎麼做。爲Listview列實現一個不錯的自動調整機制?
我設定的最後一列自動調整itselfs當窗體調整大小:
Private Sub Form1_Resize(sender As Object, e As EventArgs) _
Handles MyBase.Resize
ColumnDownload.AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize)
End Sub
但這本地自動調整大小的方法是錯的,因爲當我調整應用程序,顯示水平滾動條:
Ofcourse如果我選擇我自己用鼠標次e最後一列分隔符增加列寬,然後我想看到/使用水平滾動條,但框架自動調整大小隻是自動增加顯示水平滾動條的大小,非常難看,不需要在調整窗體大小時自動顯示該滾動條!
的樣子,我會就像JDownloader和一切好節目了,一個自動調整時停止正好在垂直滾動條的開始,而不顯示,如果沒有必要的醜陋水平滾動條,例如像這樣:
我希望你能理解我的問題。
編輯:
'神奇的解決方案' 像這樣的:
MyColumnHeader.Width = -2
MyColumnHeader.Width = -1
...是否相同。在這裏看到很好的文章:http://visualbasic.about.com/od/quicktips/qt/ListViewQT.htm
真的所有關於在.NET中調整Listview大小的Google搜索結果都使用它,任何比例調整大小或替代方法,任何體面的自動縮放器,令人難以置信。
編寫代碼來調整每個列的大小,與控件的新寬度成比例** less **垂直滾動的寬度。 OnSizeChanged也許,重置每列寬度然後調用Invalidate。可能還需要一個'rectOldSize'來做比例部分。 – Plutonix
調整應用程序的大小時,這些大小如何調整?正在使用TableLayoutPanel或gobs的代碼?我有一個VScrolls出現的過程,但我不確定這是否是你以後的(或者如果它與TLP一起工作,或TLP對寬度有什麼影響)。 – Plutonix
'調整應用程序的大小時,這些大小是如何調整的?'我詳細介紹了用於調整最後一列大小的(怪異)方法,當我調整應用程序的大小時,我也展示了'LV'的方面。上面的圖片,所有必要的信息在問題中,沒有更多的代碼。我沒有使用'TLP',當Form被調整大小時,我使用'Anchor'屬性來調整'LV'的大小。我認爲一個知道什麼時候VSCroll出現的函數不能幫助我做任何事情,一個完美的解決方案(夢想是免費的)可以是使用ObjectListView來按比例調整大小以便通用的大小的代碼。 – ElektroStudios