2014-04-28 42 views
-1

我正在開發一個使用c#的Windows窗體應用程序。我使用了一個listview控件,其視圖屬性設置爲Details。它有兩列,ID和Name列表視圖中的數據是數據有界的。如何使用c中的文本框在多列listview控件中搜索項#

現在,我想添加到列表視圖控件使用文本框的搜索能力即無論輸入到文本框的任何字符串將搜索列中的列,ID和名稱列表中的項目,當項目被發現它被選中和將成爲listview的首要項目。

private void textBox1_TextChanged(object sender, EventArgs e) 
    { 
     try 
     { 
      ListViewItem foundItem = listView1.FindItemWithText(textBox1.Text, false, 0, true); 
      if (foundItem != null) 
      { 
       listView1.TopItem = foundItem; 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message); 
     } 
    } 
+1

什麼是你的問題?你有什麼嘗試?什麼工作?什麼沒有?你需要哪些幫助? – Eisenhorn

+0

我想要的是,無論在文本框中輸入的文本都將在兩列中進行搜索,並且一旦找到該項目,它就會被選中並自動進入列表視圖的頂部。 – user2748092

+0

我通過msdn找到了上面的代碼,但它不適用於我的應用程序。 [鏈接](http://msdn.microsoft.com/en-us/library/ms171644(v = vs.90).aspx) – user2748092

回答

0

您是否已設置視圖列表以在初始化ViewList時使用FindItemWithText方法?如果在初始化你的列表視圖時沒有添加下面的行。沒有它,FindItemWithText方法將無法工作。

listView1.View = View.List; 

編輯:我發現問題是在你的listView1.TopItem = foundItem; 該方法實際上找到您搜索的數據,但無法將其添加到列表頂部。設置TopItem始終有問題。 http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.topitem.aspx 無論如何,您的搜索工作正常。 嘗試添加您的FoundItem到一個新的列表,它會工作..

+0

我也試過,但它不起作用。 – user2748092

+0

請添加包含ListBox初始化的完整代碼。所以我們可以弄清楚錯誤在哪裏。 – anbuj

+0

我發現問題出在你的listView1.TopItem = foundItem; 該方法實際上找到您搜索的數據,但無法將其添加到列表頂部。設置TopItem始終有問題。 http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.topitem.aspx 無論如何,您的搜索工作正常.. – anbuj

相關問題