我想在C#中填充組合框,但出於某種原因,項目不會出現。C#Combobox不顯示項目
public List<string> items
{
set
{
combobox.Items.Clear();
foreach(string s in value)
{
combobox.Items.Add(s);
}
combobox.Update();
}
}
這看起來像是令人難以置信的簡單代碼。我根本看不出有什麼問題。 它被稱爲是這樣的:
private void StoreNames(List<string> names)
{
if (selectionForm.InvokeRequired)
selectionForm.Invoke((MethodInvoker)delegate { selectionForm.items = names; });
else
selectionForm.items = names;
}
有趣的是,它似乎在工作InvokeRequired
返回true,但是當它返回false不起作用。
編輯: 我發現selectionForm.IsHandleCreated
目前是false
。這導致InvokeRequired
返回false,但這也是爲什麼經常調用setter不起作用的原因。我不知道爲什麼IsHandleCreated
設置爲false。表格已顯示()n。
調用代碼是什麼? –
什麼線程正在設置屬性?它是一個計時器線程還是主要的「Windows消息循環」? –
我認爲你將需要提供更多信息才能得到一個很好的答案。 – hspain