【问题标题】:Loop Through Listview Checked Items循环通过 Listview 检查项目
【发布时间】:2015-08-17 14:51:40
【问题描述】:

关于我的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!");

我错过了什么。

这是程序的截图。

【问题讨论】:

  • 有什么问题吗?它没有解释你遇到的实际问题是什么
  • 您需要等待sm.sendSMS(Selected, txtMessage.Text); 行之后发送的每条短信。但不确定,因为您没有提到确切的问题。
  • 您必须描述您面临的问题(错误描述、不良行为等...)
  • 当我发送消息时,循环体没有被执行。它直接进入消息框部分。
  • 我猜lvNumbers.SelectedItems 在你的情况下总是空的。

标签: c# loops listview sms


【解决方案1】:

寻找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 未被选中。

【讨论】:

    【解决方案2】:

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

    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.");
    

    再次感谢各位..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-21
      相关资源
      最近更新 更多