如何在一个窗体中修改另一个窗体的控件值和变量值。
如何在一个窗体中修改另一个窗体的控件值和变量值?
另一个窗体的控件和变量都设置为 public 了,但还是修改不了,有哪个老手知道呀。
如新窗体的代码如下,    public partial class ChangInfo : Form
     {
         public ChangInfo()
         {
             InitializeComponent();
         }
         SaveInfo saveInfo = new SaveInfo();
         private void ChangInfo_Load(object sender, EventArgs e)
         {
             txtArea1.Text = saveInfo.Area1;
             txtArea2.Text = saveInfo.Area2;
             txtArea3.Text = saveInfo.Area3;
             txtArea4.Text = saveInfo.Area3;
             txtUrl1.Text = saveInfo.Url1;
             txtUrl2.Text = saveInfo.Url2;
             txtUrl3.Text = saveInfo.Url3;
             txtUrl4.Text = saveInfo.Url4;
         }
         private void btnOK1_Click(object sender, EventArgs e)
         {
             saveInfo.Area1 = txtArea1.Text;
             saveInfo.Url1 = txtUrl1.Text;
         }
     }
}
------解决方案--------------------ChangInfo窗体改A窗体值。
新增ChangInfo构造函数
A a;
public ChangInfo(A a)
{
  this.a = a;
}
//更改
private void btnOK1_Click(object sender, EventArgs e)
 {
   if (this.a != null)
   {
      //a.Valeu = newValue;
      //a.TextBox.Text = "HI";
   }
 }
------解决方案--------------------1.两个同级窗口
设置static变量
  eg:
form1
public static string str1;
from2
public static string str2;
form1中调用form2  
form2.str1 = "aaa";
fomr2中调用form1
form1.str2 = "fff";
2.父与子相互调用
formFather  
  函数
{
formSon frm = new formSon();
if(frm.showDialog() == DialogResult.OK)
{
       //doSomething 这例子了不太对了。跑题了。这不算了啊
}
}
------解决方案--------------------  你可以把ChangInfo 中 txtarea1 的值通过SaveInfo 的构造方法传过去不就行了?
C# code
//SaveInfo 的构造:
  public SaveInfo (String txtArea,String txtUrl)
  {
         InitializeComponent();
         this. saveInfo.Area1 = txtArea;
         this. saveInfo..Url1= txtUrl;
  }
//ChangInfo 中:
SaveInfo saveInfo = new SaveInfo(txtArea1.Text,txtUrl1.Text);
------解决方案--------------------
第一种,把控件值和变量值都保存到对象中,然后在另一窗体中调对象,改值
第二种,把控件值和变量值传给另一个窗体
       比如:form1里有控件值和变量值,另一个窗体是form2
      在form1窗体中写form2 fm = new form2(控件值,变量值);
                     frm.show();
    然后在form2的窗体构造函数中写
     控件值类型  i;
    变量值类型  j;
    public form2(控件值类型  i,变量值类型  j) {
        this.i = i;
        this.i = j;
   }
这是传值,不过要在form2中改变,
你要看看你的控件值和变量值是引用类型还是值类型