5

我正在尝试使用 Windows 本机(主题感知)标题控件来显示一些列标题。主要目的是避免手动绘制列标题并依赖本机支持的功能。

所以我想到的两个选项是:

  1. 使用HeaderControl, 并向其添加列(我似乎找不到 WinForms 支持的标题控件)。

  2. 使用ListView控件,并告诉它不显示任何行(或基本上将其高度设置为列标题的高度) - 找不到任何方法来确定我应该为控件分配哪个高度。

任何好的想法都非常感谢!

4

1 回答 1

4

HeaderControl到目前为止,.NET 框架中还没有WinForms(ListView使用ColumnHeader该类,但这仅对 .NET 有用ListView)。如果您只针对 Microsoft Windows,您可以考虑包装 Win32 控件以在 .NET 中使用,尽管我预计这将是一项实质性工作。

您的第二个选项是一种有效的可能性,即使它感觉有些笨拙。我可以看到在正确调整列表大小以使标题和只有标题可见时出现的困难。

第三种选择是滚动你自己HeaderButton的代表一列(如ColumnHeader)并使用主题绘图调用来绘制它,然后将它们组合在 aFlowLayoutPanelTableLayoutPanel标题栏中。如果要调整大小,可以使该HeaderButton区域具有一个抓取区域,您可以拾取该区域并更改其宽度。

我认为第三个选项的创建相当简单,即使具有调整大小的能力,所以我建议采用这条路线(我什至可以在今晚回家时自己尝试一下)。

于 2008-10-28T20:03:43.500 回答