我正在为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();
}
答案 0 :(得分:0)
此错误的原因是metroComboBox1.SelectedItem
属于object
类型。方法string.IsNullOrEmpty
需要string
作为参数。所以你可以试试这个
if (!string.IsNullOrEmpty(metroComboBox1.SelectedItem as string) && ...
如果as
为string
或null
,则metroComboBox1.SelectedItem
运算符会返回null
或string
。
但如果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);