循环遍历列表视图选中的项目

Loop Through Listview Checked Items

关于我 previous post 关于发送短信的问题,我无法通过复选框将消息发送到列表视图中的所有选定项目。

消息将发送到他们的手机号码,即列表视图中的 subitem1。

这是我发送消息的代码。

foreach (ListViewItem eachItem in lvNumbers.SelectedItems)
{
     //string Selected = eachItem.Text;
     string Selected =  lvNumbers.Items[Convert.ToString(eachItem)].SubItems[1].Text;
     sm.sendSMS(Selected, txtMessage.Text);
}

sm.Closes();
MessageBox.Show("Messages Sent!");

我错过了什么。

这是程序的屏幕截图。

寻找 CheckedItems 而不是 SelectedItems:

foreach (ListViewItem eachItem in lvNumbers.CheckedItems)
{
    //string Selected =  lvNumbers.Items[Convert.ToString(eachItem)].SubItems[1].Text;
    string Selected = eachItem.SubItems[1].Text; //directly access "eachItem"
}

因为您的商品Checked未被选中。

这是发送按钮的最终代码。

if (string.IsNullOrEmpty(cboPorts.Text.Trim()))
        {
            MessageBox.Show("Select COM port first.", "Err", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            txtMessage.Focus();
            return;
        }

        if (string.IsNullOrEmpty(txtMessage.Text.Trim()))
        {
            MessageBox.Show("Please Enter a Message.", "Err", MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
            txtMessage.Focus();
            return;
        }

        SMS sm = new SMS(cboPorts.Text);
        sm.Opens();

        MessageBox.Show(lvNumbers.CheckedItems.Count.ToString());

        foreach (ListViewItem eachItem in lvNumbers.CheckedItems)
            {

                string Selected = eachItem.SubItems[1].Text;                
                sm.sendSMS(Selected, txtMessage.Text);
            }

        sm.Closes();
        MessageBox.Show("Messages Sent.");

再次感谢大家..