【发布时间】:2021-10-26 16:25:17
【问题描述】:
从我的列表视图中选择一个值并单击我的按钮后,我想将我的值放入代码中,但我的代码抛出了这个异常:
Count = 'this.listView1.SelectedItems.Count' 引发了“System.InvalidOperationException”类型的异常
private void OK_button_Click(object sender, EventArgs e)
{
try
{
// OK -> Daten übernehmen
ListView.SelectedListViewItemCollection data = this.listView1.SelectedItems;
int iCount = data.Count;
if (iCount != 1)
{
MessageBox.Show("Value is empty");
return;
}
DialogResult = DialogResult.OK;
Close();
}
catch (Exception ex)
{
//WriteProtokoll(ex.ToString(), 0);
Close();
}
}
}
private void listView1_SearchForVirtualItem(object sender, SearchForVirtualItemEventArgs e)
{
e.Index = Array.FindIndex(myData, s => s == textBox1.Text.ToString());
}
private void listView1_RetrieveVirtualItem(object sender, RetrieveVirtualItemEventArgs e)
{
e.Item = new ListViewItem(myData[e.ItemIndex]);
}
myData = new string[dataListSize];
for (int i = 0; i < dataListSize; i++)
{
myData[i] = String.Format("{0}", i);
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
String MyString = textBox1.Text.ToString();
ListViewItem lvi = listView1.FindItemWithText(MyString.TrimEnd());
//Select the item found and scroll it into view.
if (lvi != null)
{
listView1.SelectedIndices.Clear();
listView1.SelectedIndices.Add(lvi.Index);
listView1.EnsureVisible(lvi.Index);
}
}
【问题讨论】:
-
Why the Items of a Virtual ListView that are not visible don't have index? -- 查看注释、
RetrieveVirtualItem和SearchForVirtualItem处理程序以及在 virtual 列表中搜索项目的代码 (FindItemWithText()) . -
@Jimi 在我的列表视图中选择我的值后,我仍然无法获得我的值,我的 RetrieveVirtualItem 和 SearchForVirtualItem 处理程序工作正常,但在我选择了值之后并单击 OK 我无法将其保存为值以在我的代码中进一步使用它。
-
@Ahmet 该问题似乎与您在此问题中提出的问题无关。也许您想在网站上提出一个新问题?