2013-06-13 127 views
1

我有一個ListView在另一個線程,我將項目添加到它的安全線程安全的方式,像這樣:列表視圖中選擇項錯誤

listView1.Invoke(new AddTolstDiscoveredDevices(AddDiscoveryEntry), ReceiveString);

但是當我試圖讓一個選定的項目,它說索引0是無效的。

我用這樣的:

string IpAdr = listView1.SelectedItems[0].SubItems[0].Text;

誤差= "InvalidArgument=Value of '0' is not valid for 'index'.\r\nParameter name: index"

然後,因爲它是在另一個線程上,我試圖調用這樣的:

public string GetCurrentItem(int location) 
    { 
     if (this.listView1.InvokeRequired) 
     { 
      getCurrentItemCallBack d = new getCurrentItemCallBack(GetCurrentItem); 
      return this.Invoke(d, new object[] { location }).ToString(); 
     } 
     else 
     { 
      return this.listView1.Items[location].Text; 
     } 
    } 

當我打電話,我得到了同樣的錯誤。

我不明白什麼是錯的。

任何幫助表示讚賞。謝謝。

+0

你檢查ListView1的計算,它不爲空? – 2013-06-13 06:40:24

+0

@DarthVader,是的。 'if(this.listView1.SelectedItems.Count!= null){string IpAdress = listView1.SelectedItems [0] .Text; }'它說'1'的值對'index' – Liban

+0

無效,我發現了這個問題。只要我在列表視圖包含的選項卡內,我會從列表視圖中獲取抽取項目。我想我需要重新排列我的gui設計。我不知道爲什麼它不能工作。 – Liban

回答