我如何使列大小适合窗口大小

本文关键字:窗口大小 何使列 | 更新日期: 2023-09-27 18:10:27

如何使列表视图的列范围适合当前窗口大小。让它在最大化窗口模式下拉伸?

我如何使列大小适合窗口大小

无论您如何请求,ListView都只支持两种自动调整列大小的方式:要么通过列内容的长度,要么通过列标题内容的长度。

由于这显然不是您想要的,因此您需要自己编写代码来完成此操作。为此,将处理程序方法附加到表单的ResizeEnd事件。每当用户或通过代码以编程方式调整表单大小时,都会引发该事件。大概,你已经在你的ListView控件上使用了Anchor和/或Dock属性,以确保它与父窗体一起调整大小,所以这应该涵盖所有情况。

在该事件处理程序方法中,您将计算每个列的新大小并相应地调整ListView控件。这是唯一困难的部分,确定要使用哪种算法来调整列的大小。

如果你有一个这样的ListView:

| Order # | Customer Name | Phone Number | Status |
|---------|---------------|--------------|--------|
|         |               |              |        |

您可能希望"Order #"answers"Status"列具有相同的宽度和最窄的宽度(因为它们要显示的信息量最少)。"客户名称"需要是最长的(因为它有最多的信息要显示),而"电话号码"可以在中间的某个地方。

所以你所要做的就是按比例调整每个列的大小与ListView控件的总可用宽度,你可以通过查询它的ClientSize属性来检索;例如,

float totalWidth = myListView.ClientSize.Width;

您将在这里找到一个非常优雅且可重用的方法演示。