当我不选择组合框中的项目时,表单崩溃

时间:2016-01-22 21:35:45

标签: c# combobox itextsharp

所以我有一个包含一些文本框和组合框的表单,在代码中我使用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 = "";
                    }
                }

2 个答案:

答案 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}");