我做了两个form,分别在不同的命名空间中,通过引用引用到一个方案里,但是如何能够在一个form中通过点击事件修改另一个form中含有的某个label的值呢??求教

解决方案 »

  1.   

    新建一个线程专门进行修改,然后通过委托实现调用label事件的方法.
      

  2.   

    定义b中的label为public。(修改b.designer.cs文件,找到那个label。。把private改成public)
    a中写b b=new b();b.lable.text="fddfsdfs"
      

  3.   

    没那么复杂吧 ,直接定义成属性,然后在Load时,把值丢给Lable不就行了... 
      

  4.   

    直接把LABEL的属性改为public 就可以了
      

  5.   

    namespace WindowsApplication4
    {
        public partial class Form2 : Form
        {
            public Form2()
            {
                InitializeComponent();
            }        private void Form2_Load(object sender, EventArgs e)
            {        }        public  void change(string aaa)
            {
                label1.Text = aaa;
            }
        }
    }namespace WindowsApplication5
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                WindowsApplication4.Form2 f2 = new WindowsApplication4.Form2();
                f2.Show();
                f2.change("ggg");
            }
        }
    }
      

  6.   

    在label窗体里面价格静态变量,然后将静态变量的值和label绑定,然后在另一个窗体点击的时候直接降至赋值给这个静态变量就可以了!
      

  7.   

    对了,你可以参考一下SharpDevelop里面,有一个修改状态栏显示信息的代码,不仅跨Form,任何插件都能修改调用
      

  8.   

    假设你想通过form2的按钮操作form1的label控件的值.在你的form2中重写构造方法,使其传进去一个label,如:public from2(Label lb)
    {
          InitializeComponent();//初始化方法
           newlb=lb;
    }在窗体form1打开form2的时候用重载的构造方法实例化对象打开.传递你所要修改的label控件在from2里再声明一个label如:Label newlb当点击按钮的时候操作newlb.text的值就等于操作form1的lb的值.因为控件的参数传递是地址引用
      

  9.   

    方法是很多的,但如果就只想修改另一个form中的label.Text,可以将label.Text封装一个public的属性,然后调用修改属性就行了。
      

  10.   

        Form1
        public partial class Form1 : Form
        {     
            private string a;
            public string get_a
            {
                set
                {
                    a= value;
                }
                get
                {
                    return a;
                }
            }
       }
        public partial class Form2 : Form
        {   
            public Form2()
            {     
                InitializeComponent();
                Form1 f = new Form();
                this.Lable1.text = f.get_a;
            }
        }
    貌似这样就行了 
      

  11.   

    我晕! 如此简单的问题如何会牵扯那么多么啊~
    // 在目标 Form2 中定义一个 public 方法
    public void SetLabelTest(string value)
    {
    label1.Text = value;
    }// 在 Form1 中需要调用的地方加入代码
    foreach (Form f in Application.OpenForms)
    {
    // 根据类型获取 Form2 窗口实例
    if (f.GetType() == typeof(Form2))
    // 注:这个将更改所有类型为 Form2 的窗口中标签的文本属性
    (f as Form2).SetLabelTest("Now, text changed!");
    }