0

我有一个由 SQL 数据库填充的 Windows 表单中的列表视图。我有一个按钮可以在选择时删除记录,并且工作正常。但是如果没有选定的项目并且我单击删除按钮,我会得到错误。所以我添加了一个消息框和一个条件,但总是得到 -对象引用未设置为对象的实例。

那么如何检查列表视图中是否有选定的项目,以便它输入 If?

谢谢

private void btnDelete_Click(object sender, EventArgs e)
    {

        bool b = this.lvBrands.FocusedItem.Checked;

        if (b == false)
        {
            MessageBox.Show("You must select a brand .", "Brand Select Error",
            MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
        }
        else
        {
            string sID = this.lvBrands.FocusedItem.Text;
            deleteBrand(sID);
            clearBrand(); 

        }    
4

2 回答 2

3

你可以做

if(lvBrands.SelectedItems.Count > 0)
{
//you have something selected
}
于 2013-03-22T18:01:23.350 回答
0

FocusedElement在尝试引用它之前,您需要检查是否不为空。

 bool b = false;
 if(this.lvBrands.FocusedItem != null)
 {
      b = this.lvBrands.FocusedItem.Checked;
 }

但是,正如@bobek 指出的那样,如果您正在寻找选定的项目,您应该使用SelectedItem而不是FocusedItem属性。代码是一样的,只是使用SelectedItem.

于 2013-03-22T18:03:45.600 回答