我想创建一个只有一列的ListView。在我遇到的每段代码中,我都看到这样的构造:

listView.Columns.Add("Name", -2, HorizontalAlignment.Left);


我不知道为什么每个人都在这里通过-2?它从何而来?

我看到只有这样,我的结果才是我真正期望的结果,但是为什么不这样

listView.Columns.Add("Name");


好好工作?它创建了两列,一列狭窄,一列没有标题。

最佳答案

为了扩展George的答案,我首先要说:“总是查阅文档。”

因此,我试图解释您如何自己获得答案。

在MSDN上,ListView.Columns属性返回一个ColumnHeaderCollection。在以下链接中引用它:ColumnHeaderCollection。找到Add方法,定义是这样的:

public virtual ColumnHeader Add(
    string text,
    int width,
    HorizontalAlignment textAlign
)


这直接来自MSDN,这正是您要寻找的东西:) ...第二个参数是width。此外,文档还将提及注释或您可能需要了解的有关方法和/或参数的更多详细信息。

更新:现在,我明白了您的要求。对不起,误会。是的,-2是一个特殊数字,有关其他数字的详细信息在ColumnHeader.Width页面上:


  此属性使您可以设置ColumnHeader的宽度。可以设置ColumnHeader以在运行时调整列的内容或标题。若要调整列中最长项目的宽度,请将Width属性设置为-1。若要自动调整为列标题的宽度,请将Width属性设置为-2。


值得庆幸的是,有两个不可思议的(或特殊的)值可以全部设置。

关于c# - C#ListView.Columns.Add的参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31684162/

10-09 22:34