1

別のスレッドにリストビューがあります。次のように、安全なスレッドセーフな方法でアイテムを追加します。

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;
        }
    }

私が電話すると、同じエラーが発生しました。

何が悪いのか理解できません。

どんな助けでも大歓迎です。どうも。

4

1 に答える 1

2

ListView.SelectedIndices プロパティを使用してみてください

http://msdn.microsoft.com/en-us/library/system.windows.forms.listview.selectedindices.aspx

if (this.listView1.SelectedIndices.Count > 0) 
{ 
     string IpAdress = listView1.Items[listView1.SelectedIndices[0]].Text; 
}
于 2013-06-13T07:41:30.770 に答える