我知道有ListView的Properties
可以改變常見的風格,但我只是想測試這個。例如,View = View.LargeIcon
將LVS_ICON = 0
樣式應用於ListView
或GridLines = true
將樣式LVS_EX_GRIDLINES = 1
應用於ListView
。我想用CreateParams
進行測試。我覺得使用GetWindowLong
和SetWindowLong
Win32的功能應該沒問題,但爲了方便起見,據我所知,CreateParams
可以改變控件的樣式。但這次用ListView
,我不能使它工作,它根本沒有任何作用,不知是否ListView
是一個特例?這裏是我的代碼:覆蓋自定義ListView中的CreateParams沒有效果?
public class CustomListView : ListView {
protected override CreateParams CreateParams {
get {
CreateParams cp = base.CreateParams;
cp.Style |= 3; //Apply LVS_LIST (View as List)
return cp;
}
}
}
只有LVS_EX_GRIDLINES = 1
使得一些效果,但效果並不Grid lines are drawn on the ListView
但Border becomes thicker and looks like 3D-border
。這很奇怪,其他大部分應用根本沒有效果。
你能解釋一下嗎,或者至少給我舉個例子,再次請不要給我任何解決方案或代碼,它使用GetWindowLong
和SetWindowLong
,只需使用CreateParams
。
謝謝!
'LVS_EX_GRIDLINES'是擴展的* *列表視圖風格,而不是那種可以用'GetWindowLong'訪問正常的窗口樣式之一。而是在使用'LVM_SETEXTENDEDLISTVIEWSTYLE'創建控件之後設置這些樣式,並使用'LVM_GETEXTENDEDLISTVIEWSTYLE'檢索它們。 –