假设B窗体有个按钮,按钮的事件想修改A窗体的label1.text,但为什么不行的?就像下面这样。
A aa = new A();
aa.label1.text = "hello !";

解决方案 »

  1.   

    当然不行.
    因为每个控件(变量)都是其所属窗体的private变量,从别的类(比如窗体)是看不到的.
    不过,办法还是有很多的.
      

  2.   

    比如,你在窗体A里写一个public方法,在这个方法里可以改变Label1的Text,然后在窗体B里调用这个方法,不就OK啦:D
      

  3.   

    把控件修改为public那是必然的,这点我忘记说了。但还是不行。请高手指教
      

  4.   

    FantasiaX(阿猛),怎样在B调用这个方法?
      

  5.   

    其实这样的,B窗体有些变量需要保存,传递到A窗体中,或者说A窗体去存储那些变量。该如何处理
      

  6.   

    public class A{ public shared label label1;
     //共享实例}
      

  7.   

    那就在B窗体中创建对应变量的public 变量,然后在A窗体中调用这些变量就好了吧
      

  8.   

    A窗体的用<input type=text id=txt>
    B窗体使用opener.document.getElementByID("txt").value="新值"
      

  9.   

    winForm 如下 web 的不懂
    public class FormA
    {
      private Label label1;  public string LabelText
      {
        set
        {
          label1.Text = value;
        }
      }  private void ShowFromB()
      {
        FromB formB = new FromB();
        formB.fromA = this;
        formB.Show();
      }
    }public class FormB
    {
      private FormA forma;
      public FormA formA
      {
        set
        {
          forma = value;
        }
      }
      private void SetFromA()
      {
        forma.LabelText = "YoueString";
      }
    }
      

  10.   

    修改不了?我试了,修改得了。
    Form2 f = new Form2();
    f.Show();
    f.label1.Text = "sss";如果你第二句是用的ShowDialog();那么弹出的是一个模式对话框,必须要等到Form2关闭才能继续执行,所以后面那句当然就没用。
    如果你是用的ShowDialog,那么你就应该在之前赋值。
    Form2 f = new Form2();
    f.label1.Text = "sss";
    f.ShowDialog();
      

  11.   

    http://blog.csdn.net/zhzuo/archive/2004/04/05/22027.aspx
      

  12.   

    把a窗口label1设置为static public.
      

  13.   

    http://www.cnblogs.com/cowbird/archive/2004/08/02/29399.html
    http://www.itfat.com/tech/nettech/nettech20051215/59730.html
    http://dev.csdn.net/article/26/26433.shtm
      

  14.   

    同意"HJ_34(刺桐游子)"的说法
    在A窗口中定义代理和事件,在B窗中触发
      

  15.   

    在Form  A中:
    public System.Windows.Forms.Label label1;A aa = new A();
    aa.label1.Text= "hello !";
    这样就可以访问了。
      

  16.   

    面向对象思想,给FormA添加属性。如你所举的例子,可以给aa.label1.text添加一个只写属性,不就好了。
      

  17.   

    在Form  A中:
    public static System.Windows.Forms.Label label1;
      

  18.   

    A aa = new A();
    aa.label1.text = "hello !";
    这样写是你又New了一个对象,不是原来你弹开的哪个窗体!
      

  19.   

    自定义一个方法,返回值为A窗体类型,返回一个this(A窗体),再把Label改成公有就OK了