-1

VirtualMode を使用しているときに、ListView で検索を行うのに問題があります。ListView は、RetrieveVirtualItem イベントを使用して find を入力します。

フォームにテキスト ボックスと [検索] ボタンがあります。

private void btnSearch_Click(object sender, EventArgs e)
{
    listViewFields.FindItemWithText(txtSearch.Text);
}

コレクション内のテキストを検索し、インデックスをイベント引数の Index プロパティに設定する SearchForVirtualItem イベントを処理しました。

private void listViewFields_SearchForVirtualItem(object sender, SearchForVirtualItemEventArgs e)
{
        e.Index = collection.IndexOf(e.Text);
}

e.Index の値は期待値に設定されますが、ListView では何も起こりません。

4

2 に答える 2

0

e.Index の値は期待値に設定されますが、ListView では何も起こりません。

このメソッドは、指定されたテキスト値で始まる最初の ListViewItem をFindItemWithText検索して返します。

リスト ビューで何かを行うには、返されたアイテムを処理する必要があります。例えば:

var item = listViewFields.FindItemWithText(txtSearch.Text);
if (item != null)
{
    listViewFields.FocusedItem = item;
    item.Selected = true;
    item.EnsureVisible();
}
于 2016-06-28T18:07:18.387 に答える