如何在一个窗体中修改另一个窗体的控件值和变量值。
如何在一个窗体中修改另一个窗体的控件值和变量值?
另一个窗体的控件和变量都设置为 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中改变,
你要看看你的控件值和变量值是引用类型还是值类型