返回首页

您好,
我有组合框,我使用SelectedIndexChanged事件,请注意以下的代码。如果让我选择,指数值将创建AA标签成年,但如果让我选择两个指数值,它应该显示'孩子'的标签,平行,它不应该显示"成人"标签。我怎样才能解决这个问题呢?

private void cmbAdults_SelectedIndexChanged(object sender, EventArgs e)

        {

            if (cmbAdults.SelectedIndex == 1)

            {

                Label lblobj = new Label();

                lblobj.Text = "Adult";

                lblobj.Font = new Font(lblobj.Font, lblobj.Font.Style | FontStyle.Bold);

                lblobj.BackColor = Color.Transparent;

                lblobj.ForeColor = Color.White;

                lblobj.AutoSize = true;

                lblobj.Location = new Point(270, 110);

                //this.Controls.Add(lblobj);

                groupBox1.Controls.Add(lblobj);

            }

            else if (cmbAdults.SelectedIndex == 2)

            {

                Label lblobj1 = new Label();

                lblobj1.Text = "child";

                lblobj1.Font = new Font(lblobj1.Font, lblobj1.Font.Style | FontStyle.Bold);

                lblobj1.BackColor = Color.Transparent;

                lblobj1.ForeColor = Color.White;

                lblobj1.AutoSize = true;

                lblobj1.Location = new Point(270,140);

                groupBox1.Controls.Add(lblobj1);

            }

}

我不能使用'儿童'的标签,并在"成人"标签lblobj1 lblobj ......

回答

评论会员:manoharank5 时间:2012/02/05
私人无效cmbAdults_SelectedIndexChanged的(对象发件人,EventArgs的五)
{
 0;
的标签lblobj;
 60; 如果(cmbAdults.SelectedIndex == 1)
& #160; {
lblobj =新标签()

 0; lblobj.Text ="成人";
lblobj.Font =新字体(lblobj.Font,lblobj.Font.Style | FontStyle.Bold)
lblobj.BackColor = Color.Transparent;
& #160; lblobj.ForeColor = Color.White;
  ; lblobj.AutoSize =
& #160; lblobj.Location =新点(270,110);
/ / this.Controls.Add(lblobj)
 0; groupBox1.Controls.Add(lblobj);
}
 0;否则,如果(cmbAdults.SelectedIndex == 2)
 60; {
&# 160; 标签lblobj1 =新的Label()
 60; lblobj1.Text ="子";
 60; lblobj1.Font =新字体(lblobj1.Font,lblobj1.Font.Style | FontStyle.Bold)
& #160; lblobj1.BackColor = Color.Transparent;
lblobj1.ForeColor = Color.White;
lblobj1.AutoSize =
lblobj1.Location =新点(270140);
& #160; groupBox1.Controls.Remove(lblobj)
/ /
如果(lblobj!= NULL)
lblObj.Visible = FALSE;
groupBox1.Controls.Add(lblobj1)
  ; }
}
评论会员:NIRAL的SONI 时间:2012/02/05
设置每个标签的name属性
然后使用的containsKey和removeByKey方法删除对象之前加入另一个。

使用示例如下所示 -
{C}感谢问候,
niral SONI
评论会员:GParkings 时间:2012/02/05
你从不能参考lblobj"否则,如果"块因为它是范围内的定义,如果"块和,反过来说,你不能引用在lblobj1'如果'块作为它被定义在的范围,否则,如果"块

为了解决这个问题,你可以简单地移动的decleration(实例)以上,如果ELSEIF

例如:


private void cmbAdults_SelectedIndexChanged(object sender, EventArgs e)

{

    Label lblobj;

    Label lblobj1;

 

    if (cmbAdults.SelectedIndex == 1)

    {

        lblobj = new Label();

        lblobj.Text = "Adult";

        lblobj.Font = new Font(lblobj.Font, lblobj.Font.Style | FontStyle.Bold);

        lblobj.BackColor = Color.Transparent;

        lblobj.ForeColor = Color.White;

        lblobj.AutoSize = true;

        lblobj.Location = new Point(270, 110);

        groupBox1.Controls.Add(lblobj);

    }

    else if (cmbAdults.SelectedIndex == 2)

    {

        lblobj1 = new Label();

        lblobj1.Text = "child";

        lblobj1.Font = new Font(lblobj1.Font, lblobj1.Font.Style | FontStyle.Bold);

        lblobj1.BackColor = Color.Transparent;

        lblobj1.ForeColor = Color.White;

        lblobj1.AutoSize = true;

        lblobj1.Location = new Point(270,140);

        groupBox1.Controls.Add(lblobj1);

    }

}


然而,这仍然是一个糟糕的方​​式去。

为什么就不能有一个单独的标签,已经在窗体上的位置设置为""的文本,然后简化为

{体C3}