在带有View = List的C#ListView中,底部有空白空间,为滚动条保留。奇怪的是,设置Scrollable = false只会增加这个未使用空间的大小。
如何摆脱这个空间或确定它用于显示物品?
修改 我在Windows窗体应用程序中遇到此问题。
编辑2:问题似乎与某种方式的字体大小相关联。我需要字体大小为9磅。 11点这个问题不会出现。
编辑3:我也试过Item spacing in ListView where View=List,但这也没有帮助。
编辑4:在Win7下使用Win7主题。但是,至少在Scrollable = false的情况下,经典主题不会发生。
答案 0 :(得分:0)
仍然希望有一个更优雅的解决方案,但就目前而言,我发现了这个解决方法:
可以使用Panel来消除额外的空间。我从TaW对Add padding to last ListView item in WinForms
的回答中得出了这个想法请记住,这对我有用,因为我不想要或不需要滚动条。
listView1.Scrollable = true;
int itemHeight = listView1.GetItemRect(0).Height;
int numItemsPerColumn = 10;
//One needs to add 21 to the height, because even if no Scrollbar
//is needed, that space will stay reserved.
listView1.Size = new Size(500, itemHeight * numItemsPerColumn + 21);
Panel P = new Panel();
P.BackColor = listView1.BackColor;
P.Location = listView1.Location;
//The height you actually want
P.Size = new Size(500, itemHeight * numItemsPerColumn + 4);
P.BorderStyle = listView1.BorderStyle;
listView1.BorderStyle = BorderStyle.None;
listView1.Parent = P;
listView1.Location = new Point(0, 0);
this.Controls.Add(P);