Skype工具CheckedListbox错误

时间:2016-01-19 12:49:09

标签: c# visual-studio-2015

我正在为Skype工具编码。 我试图将其列入黑名单,以便他们可以通过检查列表框向他们赢得的人发送垃圾邮件,但我设置了我所知道的一切,我在Skype上收到了这个。 system.windows.forms.checkedlistbox + checkeditemcollection它是垃圾邮件而不是我选择的人选?这是代码:

    private void metroButton6_Click(object sender, EventArgs e)
    {
        if (!string.IsNullOrEmpty(checkedListBox1.CheckedItems.ToString()) && !string.IsNullOrEmpty(metroTextBox5.Text))
        {
        timer3.Start();
        }
    }

    private void timer3_Tick(object sender, EventArgs e)
    {
        skype.SendMessage(checkedListBox1.CheckedItems.ToString(), metroTextBox5.Text);
    }

    private void metroButton9_Click(object sender, EventArgs e)
    {
        timer3.Stop();
    }

2 个答案:

答案 0 :(得分:0)

此错误的原因是metroComboBox1.SelectedItem属于object类型。方法string.IsNullOrEmpty需要string作为参数。所以你可以试试这个

if (!string.IsNullOrEmpty(metroComboBox1.SelectedItem as string) && ...

如果asstringnull,则metroComboBox1.SelectedItem运算符会返回nullstring

但如果SelectedItem不是字符串,您可能宁愿使用它:

if (!(metroComboBox1.SelectedItem == null || 
      string.IsNullOrEmpty(metroComboBox1.SelectedItem.ToString())) && ...

答案 1 :(得分:0)

ComboBox的SelectedItem始终为object,无法与字符串进行比较。这就是为什么你会得到这样的例外,所以我建议你使用:

metroComboBox1.SelectedItem.ToSting();

因此,您的if将如下所示:

if (!string.IsNullOrEmpty(metroComboBox1.SelectedItem.ToString()) && !string.IsNullOrEmpty(metroTextBox1.Text))
        {
          // code here 
        }

并且发送消息将是这样的:

skype.SendMessage(metroComboBox1.SelectedItem.ToString, metroTextBox1.Text);