c#中的Listview不起作用
本文关键字:不起作用 Listview 中的 | 更新日期: 2023-09-27 18:25:19
我写的代码是:
public Form1()
{
InitializeComponent();
listView1.View = View.Details;
SqlConnection con = new SqlConnection("Data Source=(local);Initial Catalog=person;Integrated Security=True");
SqlDataAdapter ada = new SqlDataAdapter("select * from personal", con);
DataTable dt = new DataTable();
ada.Fill(dt);
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
ListViewItem listitem = new ListViewItem(dr["name"].ToString());
listitem.SubItems.Add(dr["lastname"].ToString());
listView1.Items.Add(listitem);
}
}
它编译时没有任何错误/警告,但没有显示任何内容。
在ListView中添加子项之前,您需要定义所需的列
在您的情况下,您需要两列,一列用于主文本(Name列),另一列用于从查询中提取的第一个也是唯一一个子项(LastName字段)。当然,如果将来你想在你的子项列表中添加更多的数据,这应该改变
listView1.Columns.Add("Name", -2, HorizontalAlignment.Left);
listView1.Columns.Add("LastName", -2, HorizontalAlignment.Left);
for (int i = 0; i < dt.Rows.Count; i++)
{
DataRow dr = dt.Rows[i];
ListViewItem listitem = new ListViewItem(dr["name"].ToString());
listitem.SubItems.Add(dr["lastname"].ToString());
listView1.Items.Add(listitem);
}
ListView.Columes属性上的表单MSDN
如果您的ListView控件没有指定任何列标题如果将View属性设置为Details,则ListView控件将不显示任何项目。