2014-04-14 92 views
0

我已經看到關於此問題的所有問題,但解決方案似乎不適用於我的情況。listview項目未在C#中以編程方式選擇

我試圖在ListView選擇一個項目,我有以下幾點:

ListView Matlab_Hst_Props; 
... 
//Matlab_Hst_Props.HideSelection == false; 
//Matlab_Hst_Props.Items.Count == 4; 

Matlab_Hst_Props.Invoke(new Action(() => Matlab_Hst_Props.Focus())); 
Matlab_Hst_Props.Invoke(new Action(() => Matlab_Hst_Props.Select())); 
Matlab_Hst_Props.Invoke(new Action(() => Matlab_Hst_Props.Items[0].Selected = true)); 

//Matlab_Hst_Props.Items[0].Selected == true 

Matlab_Hst_Props.Invoke(new Action(() => Matlab_Hst_Props.Items[0].Focused = true)); 

//Matlab_Hst_Props.Items[0].Focused == false;!!! 
//Matlab_Hst_Props.SelectedItems.Count == 0; !!! 

是的,我做這從一個線程,但即使我不使用線程並刪除invoke,我仍然有相同的行爲。

請大家幫忙。 我可能會錯過什麼?


我想在這裏添加更新。 實際上,我的GUI由選項卡組成。 此ListView位於第三個選項卡中。如果我不點擊第三個選項卡並且ListView未繪製,則會出現錯誤。 iF iF我選擇了選項卡,並且在運行這段代碼之前繪製ListView,然後正確地完成選擇。 它可以改變繪圖或不是Listview? 以及我如何強制這樣的操作?

回答

0

我在這裏發佈我使用的解決方法。我知道這只是一個愚蠢的解決方法,但我仍然沒有發現這種行爲背後的真實原因。

在GUI的初始化過程中,我編程方式更改的標籤到其中 列表視圖駐留的Tab鍵:

Top_Tabs.Invoke(new Action(() => Top_Tabs.SelectedIndex = 2)); 

,然後作爲初始化結束時,我把它放回在第一標籤

Top_Tabs.Invoke(new Action(() => Top_Tabs.SelectedIndex = 0)); 
相關問題