C# ListView 平铺宽度 100%?

Ozz*_*zzy 3 c# listview tiles winforms fluid-layout

我有一个 ListView 设置为 Tileview。ListView 宽度为 300,图块宽度也是如此。

当图块数量不会溢出导致滚动条时,这可以正常工作。

然而,当它溢出时,当垂直滚动条出现时,也会出现水平滚动条,因为垂直滚动条降低了磁贴的列表视图宽度。有没有办法让瓷砖自动调整大小来填充列表视图?

请参阅示例图像:

目前发生的事情: 替代文字

我想要发生的事情: 替代文字

我尝试将宽度设置为 100%,但这不起作用。有任何想法吗?

Han*_*ant 5

没有直接的方法来检测滚动条是否可见。一种间接的方式,为 ClientSizeChanged 事件编写一个事件处理程序:

    private void listView1_ClientSizeChanged(object sender, EventArgs e) {
        listView1.TileSize = new Size(listView1.ClientSize.Width, listView1.TileSize.Height);
    }
Run Code Online (Sandbox Code Playgroud)

还要更改您机器上的 DPI 设置,以验证您的磁贴尺寸是否仍然合适。这通常会改变控件的大小。ClientSize.Width 是你的朋友。