我自己写了动态生成窗体的类 CreateForm,大体成员如下:
public System.Windows.Forms.Form myForm;
public static System.Windows.Forms.RichTextBox richTextBox1;
public System.Windows.Forms.RichTextBox richTextBox2;
public System.Windows.Forms.Button btnOK;
           ....
           ....
           ....
我现在动态生成2个窗体,分别是:
CreateForm form1 = new CreateForm();
form1.myForm.Show();
CreateForm form2 = new CreateForm();
form2.myForm.Show();
=================================================================================
btnOK 事件: 目的是把此窗体的richTextBox2的值复制到richTextBox1中去,然后晴空richTextBox2
private void btnOK_Click(object sender, System.EventArgs e)
{
    string msg = this.richTextBox2.Text;
    richTextBox1.Text = msg;
    richTextBox2.Text = "";
    ...
    ...
}
=================================================================================
现在我的操作:
在form1对象的richTextBox2控件上写了“MSG”文本字符串,然后触发btnOK 事件,结果“MSG”跑到
form2对象的richTextBox1控件里去了,我的本意是显示在form1的richTextBox1控件上,什么原因?
不知道大家是否听懂我的意思没?
我估计是关键字"static"作用于richTextBox1原因

解决方案 »

  1.   

    你如何初始化richtextbox1以及richtextbox2的
      

  2.   

    // 
    // richTextBox1
    // 
    richTextBox1.Location = new System.Drawing.Point(0, 32);
    richTextBox1.Name = "rtbChatContents";
    richTextBox1.Size = new System.Drawing.Size(296, 144);
    richTextBox1.TabIndex = 1;
    richTextBox1.Enabled = true;
    richTextBox1.ReadOnly = true;
    richTextBox1.Text = "";
    richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    // 
    // richTextBox2
    // 
    this.richTextBox2.Location = new System.Drawing.Point(0, 208);
    this.richTextBox2.Name = "rtbMessage";
    this.richTextBox2.Size = new System.Drawing.Size(296, 96);
    this.richTextBox2.TabIndex = 3;
    this.richTextBox2.Text = "";
    this.richTextBox2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
    先谢谢愚翁大哥,以上是我对那2个控件的初始化,不过今天下午我试着用委托解决了
    我这样的,可是我想不通为什么会出现以上那样的情况,帮忙解释下!
      

  3.   

    你的原因是因为静态成员造成的,最后一个初始化的类对象,重新初始化静态成员。由于是静态成员,最后一次初始化是form2的构造函数中进行,因此richtextbox1所在的容器是form2中。因此你在form1中对richtextbox1操作实际上是对form2的richtextbox1操作。修改的方法,去掉静态标示。