我想從文本框實時過濾帶有文本的列表框。實時過濾帶有文本框的列表框
下面是代碼:
private void SrchBox_TextChanged_1(object sender, EventArgs e)
{
var registrationsList = registrationListBox.Items.Cast<String>().ToList();
registrationListBox.BeginUpdate();
registrationListBox.Items.Clear();
foreach (string str in registrationsList)
{
if (str.Contains(SrchBox.Text))
{
registrationListBox.Items.Add(str);
}
}
registrationListBox.EndUpdate();
}
這裏有問題:
當我運行程序我得到這個錯誤:
Object reference not set to an instance of an object
如果我打退格,我初始列表不再顯示。這是因爲我的實際物品清單現在已經減少,但我怎麼能做到這一點?
您能否指點我正確的方向?
你嘗試使用(!的IsPostBack)檢查,如果它沒有後回 – 2012-04-02 21:07:21
你需要保持在一個單獨的'名單列表框中的內容'讓Items.Clear()不要」給你留下一個空白列表。 NRE並不那麼明顯。如果原始項目不是字符串,則轉換爲字符串不一定有效。始終使用ToString()。 –
2012-04-02 21:29:34
@COLDTOLD:很確定這是一個WinForms問題... – 2012-04-02 21:37:45