如何仅使用一个文本框填充多个标签

本文关键字:文本 填充 标签 一个 何仅使 | 更新日期: 2023-09-27 18:34:47

我正在尝试仅使用一个文本框填充一个又一个标签。现在它总是填充标签 3,而不是标签 4,逻辑有什么问题?

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

如何仅使用一个文本框填充多个标签

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

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

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

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;
}

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

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 断言,只有在 if 语句返回 false 的情况下才会执行 (Label3.Text != null(。