将项添加到Windows窗体应用程序中的listBox,

时间:2017-02-10 14:23:45

标签: c# winforms listbox

如果textBoxes点击radioButton,如何将listboxperfomed中的项目(只有两个,但只能检查一个)添加到 listBox1.Items.Clear(); for (int i = 1; i < listBox1.Items.Count; i++) { if (textBox1.Text == listBox1.Items[i].ToString()) { equal1 = true; } else { equal1 = false; break; } } if (equal1 == false) { listBox1.Items.Add(textBox1.Text); } for (int i = 1; i < listBox1.Items.Count; i++) { if (textBox2.Text == listBox1.Items[i].ToString()) { equal2 = true; } else { equal2 = false; break; } } if (equal2 == false) { listBox1.Items.Add(textBox2.Text); } if (radioButton1.Checked == true) { listBox1.Items.Add("Male"); } else if (radioButton2.Checked == true) { listBox1.Items.Add("Female"); } 一个按钮?

这是我的代码:

template<typename T_>
class Wrapper
{
    public:
    Wrapper(T_ val_) : m_value(val_) { } // converting constructor
    operator T_(void) const { return m_value; } // underlying type conversion
    // some other methods

    // binary plus operators:
    template<typename U_>
    const Wrapper<decltype(T_() + U_())> operator +(U_ val_) const
    {
        // supposed to handle 'Wrapped + Unwrapped' case
        return m_value + val_;
    }
    template<typename U_>
    const Wrapper<decltype(T_() + U_())> operator +(Wrapper<U_> other_) const
    {
        // supposed to handle 'Wrapped + Wrapped' case
        return m_value + other_.m_value;
    }

    template<typename U0_, typename U1_>
    friend const Wrapper<decltype(U0_() + U1_())> operator +(U0_ val_, Wrapper<U1_> wrapper_)
    {
        // supposed to handle 'Unwrapped + Wrapped' case
        return val_ + wrapper_.m_value;
    }

    private:
    T_ m_value;
};

我想要添加这些项目,它们之间没有空格,因为我得到的是:

enter image description here

3 个答案:

答案 0 :(得分:2)

好吧,看起来您首先要添加名称TextBox中的值,然后添加出生日期TextBox中的值。由于出生日期在此处为空,因此您将在ListBox上获得一个空字符串(因此为空行)。

如果您不想添加空值,则应在调用Add方法之前检查它们:

if (equal2 == false && !string.IsNullOrEmpty(textBox2.Text)
{
    listBox1.Items.Add(textBox2.Text);
}

然而,你所做的事情似乎并不是很直接。我建议您重新考虑检查值并处理它们的方式。

答案 1 :(得分:0)

通过查看您的屏幕,您的出生日期文本框之一看起来像是空白或包含空格。也许这可能是问题?

无论如何,这个问题应该可以通过调试轻松解决。在每个listbox1.Items.Add函数调用上放置一个断点,并检查列表框中添加了什么值。

答案 2 :(得分:0)

是的,这正是我做的:) 我的代码现在看起来像这样:

private void button1_Click(object sender, EventArgs e)
    {

        listBox1.Items.Clear();

        if(! String.IsNullOrEmpty(textBox1.Text))
        {
            listBox1.Items.Add(textBox1.Text);
        }
        if(! String.IsNullOrEmpty(textBox2.Text))
        {
            listBox1.Items.Add(textBox2.Text);
        }

        if (radioButton1.Checked == true)
        {
            listBox1.Items.Add("Male");
        }
        else if (radioButton2.Checked == true)

        {
            listBox1.Items.Add("Female");
        }


    }