2012-01-25 282 views
0

我試圖在您鍵入時執行搜索(如在iTunes中)。我正在使用ObjectListView。此外,我有一個文本框,用於執行搜索,如下所示:有人能告訴我這段代碼有什麼問題嗎?

private void textBoxSearch_TextChanged(object sender, EventArgs e) 
     { 

      string txt = textBoxSearch.Text; 
      TextMatchFilter filter = null; 
      if (!String.IsNullOrEmpty(txt)) 
      { 
       filter = TextMatchFilter.Contains(myObjectListView, txt); 
      } 
      // Setup a default renderer to draw the filter matches 
      if (filter == null) 
       myObjectListView.DefaultRenderer = null; 
      else 
      { 
       myObjectListView.DefaultRenderer = new HighlightTextRenderer(filter); 

       // Uncomment this line to see how the GDI+ rendering looks 
       myObjectListView.DefaultRenderer = new HighlightTextRenderer { Filter = filter, UseGdiTextRendering = false }; 
      } 

      // Some lists have renderers already installed 
      HighlightTextRenderer highlightingRenderer = myObjectListView.GetColumn(0).Renderer as HighlightTextRenderer; 
      if (highlightingRenderer != null) 
       highlightingRenderer.Filter = filter; 

      myObjectListView.ModelFilter = filter; 
     } 

有人可以找出爲什麼這不起作用嗎? 上面的代碼是爲了過濾搜索結果,因爲用戶在文本框中鍵入內容(就像iTunes一樣,如果您曾經使用過iTunes)。顯然,到目前爲止,沒有任何反應。看起來這個代碼甚至沒有執行。

+2

(1)它是什麼_meant_做? (2)它真的做了什麼?對於這兩個問題的答案,以及顯示問題的最小代碼示例(您似乎至少有這樣的讚譽)對於錯誤報告至關重要。 – paxdiablo

+0

以上代碼旨在過濾搜索結果,因爲用戶在文本框中鍵入內容。顯然,到目前爲止,沒有任何反應。看起來這個代碼甚至沒有執行。 –

+0

您是否通過調試器運行代碼以查看它是否確實執行或不執行?如果你使用斷點: – ChrisF

回答

2

this,在ObjectListView有一個名爲UseFiltering屬性,該屬性是false默認情況下,必須設置爲true啓用過濾。

+0

不能相信我一直都在錯過這個設置。謝謝。這解決了這個問題。 –

相關問題