2013-06-13 3 views
1

У меня есть ListView в другом потоке, я добавить элементы к нему в безопасном потокобезопасного образом, как это: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 и что это не пустой? –

+0

@DarthVader, да. 'if (this.listView1.SelectedItems.Count! = null) {строка IpAdress = listView1.SelectedItems [0] .Text; } 'он говорит, что значение' 1' недопустимо для 'index' – Liban

+0

. Я нашел проблему. пока я внутри вкладки, в которой содержится список, я получаю извлеченные элементы из списка. Думаю, мне нужно перестроить мой дизайн gui. Я не знаю, почему он не может работать. – Liban

ответ

Смежные вопросы