C#-listview中没有更新
我有一个小问题,我正在尝试更新我的listView(ListClient)C#-listview中没有更新,c#,winforms,listview,C#,Winforms,Listview,我有一个小问题,我正在尝试更新我的listView(ListClient) private ListView initializeLstView() { var lstView=newlistview(); var lstViewItem=新建ListViewItem(); 对于(uint i=0;i
private ListView initializeLstView()
{
var lstView=newlistview();
var lstViewItem=新建ListViewItem();
对于(uint i=0;i<18;++i)
{
lstViewItem=lstView.Items.Add(“免费”);
lstViewItem.SubItems.Add(“免费”);
}
返回(视图);
}
私有ListView setNamesToLstView()
{
var lstView=initializeLstView();
尝试
{
对于(uint i=0;i<18;++i)
{
lstView.Items[(int)i].Text=clients.GetName(i);
lstView.Items[(int)i]。子项[1]。Text=“{+i.ToString()+”}”;
}
lstView.Update();
}
捕获(例外a)
{
MsgBox(a.ToString());
}
返回(视图);
}
私有无效btnRefreshClients_单击(对象发送方,事件参数e)
{
listClients=setNamesToLstView();//此处不更新
}
但是在这里,我的listView什么都不包含,没有更新/没有刷新,为什么如何解决此问题?问题是您正在将项目添加到另一个列表视图
listClients
是一个成员变量,它指向先前添加到控件的ListView
。当您想向该列表视图添加项目时,应该使用listClients.items.add(…)
将项目准确地添加到该对象
但是目前您已经在方法中创建了一个列表视图
,并向其中添加了项,最后返回它并将其分配给列表客户端
。它不会使新创建的列表视图显示在表单上。它使listClients
变量仅指向新创建的控件,而您可以看到以前创建的ListView
什么是listClients
?listClients是我的ListView
private ListView initializeLstView()
{
var lstView = new ListView();
var lstViewItem = new ListViewItem();
for (uint i = 0; i < 18; ++i)
{
lstViewItem = lstView.Items.Add("Free");
lstViewItem.SubItems.Add("Free");
}
return (lstView);
}
private ListView setNamesToLstView()
{
var lstView = initializeLstView();
try
{
for (uint i = 0; i < 18; ++i)
{
lstView.Items[(int)i].Text = clients.GetName(i);
lstView.Items[(int)i].SubItems[1].Text = "{" + i.ToString() + "}";
}
lstView.Update();
}
catch (Exception a)
{
Interaction.MsgBox(a.ToString());
}
return (lstView);
}
private void btnRefreshClients_Click(object sender, EventArgs e)
{
listClients = setNamesToLstView(); // Here, no update
}