2016-01-21 108 views
0

當以'None'或'ColumnContent'作爲參數調用列表視圖的'AutoResizeColumns(...)'方法時,最後一列不會展開以填充整個面板,但是如果' 'AutoResizeColumns(...)'以'HeaderSize'作爲最後一列被擴展的參數調用,如果文本是居中或右對齊,這看起來很奇怪。C#ListView最後一列太寬

我已經能夠解決這個問題,通過添加一個額外的空白列來擴大和收縮,如果有必要,留下我想要的最後一列,只是涵蓋標題的寬度,但這似乎有點亂。他們是一個完美的方式來做到這一點?

謝謝。

Last Column Expanded

Preferred Width

回答

0

的的columnHeader可以被設置在運行時向列內容或標題進行調整。您可以通過寬度屬性設置爲-2做到這一點(要自動調整列的寬度)

OR

ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)

+0

是的,我目前使用ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)但是這擴展了最後一列以填充可用空間。查看我剛剛添加的圖片。 我也嘗試將寬度設置爲-2,但這似乎擴大了我設置寬度以填充窗口的任何冒號,即使它不是最後一列。 – Slartibartfast

+0

你可以爲此做一個,首先設置Listview的寬度說600, 然後設置每個標題列的寬度如前所述 –

+0

對不起,我不太明白。你是說如果我要設置ListView自身的寬度,最後一列將停止擴展以填充空間?這似乎不太可能,但我會給它一個去。 – Slartibartfast

0

一個解決方案,我發現是暫時減少ListView控件的大小,稱之爲「AutoResizeColumns(...)」,然後重新設置列表視圖

的尺寸被: int listViewWidth = listView1.Width; listView1.Width = 0; listView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize); listView1.Width = listViewWidth;

這似乎有點hackie b至少它不會添加一個多餘的列。