不难,但是繁琐
例子1:a 需要让外部访问就不要定义成private,如果你非要定义成private,就在Form2中传事件到Form1,在a赋给事件参数,这要求参数是传引用。如果将a定义成public则可以重写Form2的构造函数,在构造时将整个Form1传给Form2,这样在Form2就可以随意蹂躏Form1了,访问a更是小cause。
//构造函数
public Form2(Form1 form1)
{
                        InitializeComponent();//原来默认构造函数就有的,复制过来 TextBox1.Text=form1.a.ToString();
}//使用
Form2 about = new Form2(this);

about.ShowDialog();
例子2:将form1中加入一个属性string strval
{
   get{ return textbox1.text}
   set { textbox1.text=value}
}
然后在form2的click事件中加入
Form1 dd = new Form1()
dd.strval = "aaaaaa"
这样点击form2的button1时form1中的textbox1显示"aaaaaa"

解决方案 »

  1.   

    设置button的Modifiers属性为public或InternalForm2 mFrm=new Form2();
    mFrm.button.text = "NO";
    mFrm.Show();
      

  2.   

    Form2 mFrm=new Form2();
    mFrm.button.text = "NO";
    Form1 f1=new Form2();
    f1.Show();
      

  3.   

    比如说有两个窗体form1和form2,如果想在form1中操作form2中的控件,
    有两种方法:
    1:把form2中的控件申明为public型,当在form1中事例化form2时
       public class form2:Form{
          public Label label;
          public form2(){
             label=new Label();
             ...
           }
       }
       public class form1:Form{
          public form1(){
             form2 f=new form2();
             f.label.Text="test"   //可以调用了
             ...
          }
       }
    方法二:
       public class form2:Form{
          public static Label label;
          public form2(){
             form2.label=new Label();
             ...
           }
       }
       public class form1:Form{
          public form1(){
             form2.label.Text="test"   //可以调用了
             ...
          }
       }                                    wish u good luck
                                             Greatsft
      

  4.   

    http://www.c-sharpcorner.com/Code/2002/June/CommBetweenForms.asp
      

  5.   


    delphi转C#已1个多月了,现在还是云雾里,
    连个都是面向对象,怎么C#这么复杂,
    delphi做上面说的事情只一句 form2.button1.caption:='hello'就可以了,
    而C#里这么多的new来new去的,我还要不要继续C#下去了?给点建议吧
      

  6.   

    将控件改成Internal在VB里没事,但在C#里是大忌,因为控件在VB里是属性,而在C#里是字段,把字段公开会导致不希望的后果。
      

  7.   

    Form2中定义如下
    public static Form2 FormInstance;
    再将button控件修饰符设为public。Form1的某个事件中添加
    Form2.FormInstance.button.text = "no";这是最简单的办法,如果想知道更多
    http://www.csdn.net/Develop/read_article.asp?id=26433
    http://www.csdn.net/Develop/read_article.asp?id=26434
    http://www.csdn.net/Develop/read_article.asp?id=26436
    前两天我也被这个问题困扰感谢polarlm(今年本命年) ,不敢邀功。随便也帮你一下