3D-*_*tiv 17 c# listview visual-studio-2010
我正在学习如何使用listViewin a windowsForm,我有一些问题,我希望在这里解决.第一件事是当我使用下面的代码创建列时:
private void initListView()
{
// Add columns
lvRegAnimals.Columns.Add("Id", -3,HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -3, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -3, HorizontalAlignment.Left);
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,列的名称不可见,它们都在左角,我必须"拖动"它们才能读取文本.我做错了什么?
最后我想知道如何在列中添加项目.我是否首先创建一个像这样的对象
ListViewItem item1 = new ListViewItem(???);
item1.SubItems.Add("text");
Run Code Online (Sandbox Code Playgroud)
每个listViewItem对象是一列还是一行?如何添加信息行?提供一些帮助!谢谢!
Tom*_*Tom 41
您的第一个问题是您将-3传递给Columns.Add的第二个参数.它需要为-2才能自动调整列的大小.来源:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.columns.aspx(查看底部代码示例的注释)
private void initListView()
{
// Add columns
lvRegAnimals.Columns.Add("Id", -2,HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -2, HorizontalAlignment.Left);
}
Run Code Online (Sandbox Code Playgroud)
您还可以使用其他重载Add(string).例如:
lvRegAnimals.Columns.Add("Id");
lvRegAnimals.Columns.Add("Name");
lvRegAnimals.Columns.Add("Age");
Run Code Online (Sandbox Code Playgroud)
有关更多重载的参考:http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.columnheadercollection.aspx
其次,要将项添加到ListView,您需要创建ListViewItem的实例并将它们添加到listView的Items集合中.您将需要使用string []构造函数.
var item1 = new ListViewItem(new[] {"id123", "Tom", "24"});
var item2 = new ListViewItem(new[] {person.Id, person.Name, person.Age});
lvRegAnimals.Items.Add(item1);
lvRegAnimals.Items.Add(item2);
Run Code Online (Sandbox Code Playgroud)
您还可以在项目的Tag属性中存储对象.
item2.Tag = person;
Run Code Online (Sandbox Code Playgroud)
然后你可以提取它
var person = item2.Tag as Person;
Run Code Online (Sandbox Code Playgroud)
如果您有任何问题,请告诉我,我希望这有帮助!
Iam*_*man 33
我没有看到有人正确回答这个问题.所以我在这里张贴.要显示列,您需要指定以下行.
lvRegAnimals.View = View.Details;
Run Code Online (Sandbox Code Playgroud)
然后在此之后添加列.
lvRegAnimals.Columns.Add("Id", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Name", -2, HorizontalAlignment.Left);
lvRegAnimals.Columns.Add("Age", -2, HorizontalAlignment.Left);
Run Code Online (Sandbox Code Playgroud)
希望这可以帮助其他人在将来寻找这个答案.
| 归档时间: |
|
| 查看次数: |
146525 次 |
| 最近记录: |