如何只用一个文本框填充多个标签?

时间:2014-12-19 18:15:29

标签: c# logic

我只想使用一个文本框填充一个又一个标签。现在它总是填充label3,但不是label4,逻辑有什么问题?

protected void Button5_Click(object sender, EventArgs e)
{
    if (Label3.Text == null)
    {
        Label3.Text = TextBox1.Text;
    }
    else 
    {
        Label4.Text = TextBox1.Text;
    }
}

3 个答案:

答案 0 :(得分:1)

您可以遍历表单上的所有标签(您也可以执行此recursivley)并执行类似的操作。如果您只想更新某些标签,也可以进行更多检查。

foreach (Control ctl in this.Controls)
{
    if (ctl.GetType() == typeof(Label))
    {
        Label l = (Lablel)ctl;
        if (String.IsNullOrEmpty(l.Text)) l.Text = TextBox1.Text;
    }
}

答案 1 :(得分:0)

你一定在寻找这样的东西:

protected void Button5_Click(object sender, EventArgs e)
{
    if (StringIsNullOrEmpty(Label3.Text))
    {
        Label3.Text = TextBox1.Text;
    }

    if (StringIsNullOrEmpty(Label4.Text))
    {
        Label4.Text = TextBox1.Text;
    }
}

在您的示例中,您在else语句下有Label4 assingment,只有if语句返回false(Label3.Text!= null)才会执行。

答案 2 :(得分:0)

这里的基本逻辑。在评论中查看您的问题。

if (Label3.Text == null)
{
    Label3.Text = TextBox1.Text;
}
else 'this will NEVER HAPPEN IF Label3.Text is NULL
{

    Label4.Text = TextBox1.Text;
}

相反,这样做

if (Label3.Text == null)
{
    Label3.Text = TextBox1.Text;
}

if (Label4.Text == null)
{
    Label4.Text = TextBox1.Text;
}