我正在尝试制作访客日志。我有一个 ListView,其中包含访问者列表。
如果您选择访问者并单击一个按钮,它将通过更新数据库中指示他们已注销的字段将其从列表中删除,然后刷新列表以仅显示未勾选该字段的访问者。
if (lsvVisitors.SelectedItems.Count > 0)
{
if (MessageBox.Show(string.Join(Environment.NewLine, "Do you wish to sign-out "
+ lsvVisitors.SelectedItems[0].SubItems[0].Text + " "
+ lsvVisitors.SelectedItems[0].SubItems[1].Text),
"Confirm", MessageBoxButtons.OKCancel, MessageBoxIcon.Question)
== System.Windows.Forms.DialogResult.OK)
{
var entry = _repository.GetLogbookEntryById((LogbookEntry)lsvVisitors.SelectedItems[0].Tag);
_repository.SignOutLogbookEntry(entry);
UpdateList();
}
}
else
{
MessageBox.Show(string.Join(Environment.NewLine,
"You need to select a Visitor to sign-out"),
"Warning",
MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
我的问题是,当用户单击列表中未选择任何人的退出按钮时,我必须检查所选项目数是否> 0,如果此检查失败,我会告诉用户选择列表中的某个人。现在,如果用户选择某人,然后将焦点从列表视图中移除,并且似乎未选择访问者,则所选项目仍显示为列表中选择的最后一个人。
当焦点离开框时,我无法重置它,因为那样他们将无法使用退出按钮退出用户。
我在问,如果仅在列表中不再明显选择该项目,如何重置我的列表视图的 selecteditems.count?