如何使ListView中的列动态扩展?

时间:2014-01-29 21:51:15

标签: c# winforms listview

ColumnHeader header = new ColumnHeader();
header.Text = "";
header.Name = "col1";

listView1.Columns.Add(header);
listView1.View = View.Details;
listView1.Scrollable = true;

readableRss = RssReader.covertRss("http://rotter.net/rss/rotternews.xml");

lines = Regex.Split(readableRss, "\r\n")
                   .Where(str => !string.IsNullOrEmpty(str))
                   .ToList();

for (int i = 0; i < lines.Count; i++)
{
    listView1.Items.Add(lines[i]);
}

这就是我得到的:

enter image description here

我需要使用鼠标将Column / s向右移动,这样我才能看到所有的行。我怎样才能使它自动生成,因此每一行都会向右侧展开/打开,以便显示整条线?

添加以下行:header.Width = 1000;解决这个问题。但我怎么知道要设置多少呢?在这种情况下1000是好的,但为什么不是999或1500?我猜想宽度应该是1000

2 个答案:

答案 0 :(得分:2)

您需要使用ColumnHeader的{​​{3}}方法,

  

调整列宽,如AutoResize所示。

所以,像这样,

header.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);

答案 1 :(得分:2)

添加该行以根据内容调整列大小:

header.AutoResize(ColumnHeaderAutoResizeStyle.ColumnContent);

添加完所有项目后,您需要添加它。