在form1中 我将lable控件设置为public,在其中的一个自定义控件中改变lable的值,
在from1中的label1_TextChanged 事件能检测到lable.text值的改变,MessageBox.Show
lable.text 也能显示出修改后的值,但是在form1界面中的label.text值没有显出出来。(还是原来的lable1)而且 我通过在 自定义控件中改变lable的值来触发 label1_TextChanged 事件,在事件中添加新的自定义控件,添加进去了
但是就不能显示出来。 这到底是什么原因,怎么解决啊?

解决方案 »

  1.   

    设置属性
    public Label lbl
    {
    get;set;
    }
    label.Refresh
      

  2.   

    定义一个Button,在click事件中来改变lable的值,看看会不会触发?
      

  3.   

    给你2个方法:
    1、用线程去做;
    2、或者添加label1到后台进程执行。
      

  4.   


    都会触发,但是在自定义控件中修改不能显示出来, 用Button 能触发且能显示。
      

  5.   

    我的目的是 通过在其他控件中改变 lable1.text的值来触发label1_TextChanged 事件,
    在事件中为主界面添加新的控件,但是控件都添加进去了,就是不能显示出来。代码如下:public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        public Label labl
            {
                set;
                get;
            }        UserControl2 a2 = new UserControl2();        private delegate void setvisible();
            public void setenvent()
            {
                this.a2.Visible = true;
            }
            private void Form1_Load(object sender, EventArgs e)
            {
                a2.Visible = true;
                UserControl1 a1 = new  UserControl1();
                a1.Top = 0;
                a1.Left = 0;
                this.Controls.Add(a1);
            }        private void label1_TextChanged(object sender, EventArgs e)
            {
                if (this.label1.Text.Trim().Equals("2"))
                {
                    this.label1.Refresh();
                    a2.Left = 10;
                    a2.Top = 10;
                    a2.Show();                MessageBox.Show(this.label1.Text);
                    a2.Location = new Point(10, 10);
                    a2.Visible = true;
                    this.Controls.Add(a2);
                    this.Update();
                    foreach (Control c1 in this.Controls)
                    {
                        MessageBox.Show(c1.Name);
                    }
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.label1.Text = "2";
            }
        } //自定义控件1
     public partial class UserControl1 : UserControl
        {
            public UserControl1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                this.Dispose();
                Form1 m = new Form1();
                m.label1.Text = "2";
                m.Dispose();
            }
        }
    用form1 和 自定义控件 中的 button1_Click都能进入label1_TextChanged事件,
    但是用form1中的button1_Click 能显示出添加的控件,但是自定义控件中的只能添加进去不能显示出来