所以我有一个包含一些文本框和组合框的表单,在代码中我使用textbox.text和combobox.selecteditem.tostring()使用iTextSharp写入pdf文件,如
Paragraph p = new Paragraph("\n" + "Code: " + textBox1.Text + "\n" + "Gender: " + comboBox1.SelectedItem.ToString());
doc.Add(p);
因此,当我将文本框留空时,它可以正常工作 但是当我在没有选择项目的情况下离开组合框时,表单会提供无法解决的异常并崩溃
我尝试使用此代码,但它没有帮助
foreach(ComboBox ncb in this.Controls.OfType<ComboBox>())
{
if(ncb.SelectedItem == null)
{
ncb.SelectedItem = "";
}
}
答案 0 :(得分:2)
由于comboBox1.SelectedItem
为空,您会收到异常,comboBox1.SelectedItem.ToString()
会导致NullReferenceException。
您可以通过删除.ToString()
Paragraph p = new Paragraph("\n" + "Code: " +
textBox1.Text + "\n" +
"Gender: " + comboBox1.SelectedItem);
一个如何运作的例子:
object o = null;
string s = "aaa" + o + "bbb";
s将是aaabbb
答案 1 :(得分:0)
如果您感兴趣的是组合框的字符串值,为什么不使用.Text
属性?
Paragraph p = new Paragraph($"\nCode: {textBox1.Text}\nGender: {comboBox1.Text}");