簡體   English   中英

組合框項目不顯示但已設置

[英]combobox items not displaying but are set

我正在使用項目更新我的組合框,第一次打開表單時它運行良好,但是第二次,它正在設置值,但未顯示它們。

combo.Items.Clear();
int selectedIndex = -1;
foreach(var item in itemstoadd)
{
    int index = combo.Items.Add(item.Name + " - " + item.Description);
    if (item.Name.Equals(itemToSelect))
    {
        selectedIndex = index;
    }
}
combo.SelectedIndex = selectedIndex;

因此,第二次combo.Items的計數為7且所有值均有效。 但是,當方法完成並重新繪制窗體時,Items列表尚未更新。

我環顧了stackoverflow,找不到適合我的任何東西。

它在正確的線程上,我只能告訴一個實例。 我已經嘗試了BeginUpdate()/ EndUpdate()Update()Suspend / ResumeLayout

但仍然沒有任何東西會更新此項目顯示。

itemtoSelect傳遞到此方法中,並且從另一個組合框事件selectedindexchanged調用此方法,最初在我設置顯示時調用。

我在代碼中命中了調試點,並且所有項均在第一個窗口和第二個窗口中設置。 我認為唯一不確定的是,組合框是否是正確的組合框,就好像它是從第一個窗口打開的舊組合框一樣。 我認為我可以使用gethashcode()進行檢查,是否有另一種方法可以檢查對象的引用以確認是否是我認為的對象?

清除Combo.Items它將重置SelectedIndex。 然后,當您進行分配combo.SelectedIndex = selectedIndex; ,即使您將其設置為原始值,它也會生成一個新的SelectedIndexChanged事件。 如果尚未完成第一個SelectedIndexChanged處理程序調用的執行,則可能導致問題。

我有一個事件,我沒有取消分配,這是保持原始組合框保持活動狀態,並保持我在舊組合框上觸發斷點的事件。

一旦我在關閉窗口時取消分配了此事件,那么下次我創建窗口和組合框時,一切都很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM