110,580
社区成员
发帖
与我相关
我的任务
分享
方法1: 使用tag.
//Form1中:
ClassModel class1 ;
private void btnSysSet_Click(object sender, EventArgs e)
{
Form2 formSetting = new Form2();
formSetting.Tag = this;
formSetting.Show();
}
// form2中:
ClassModel class2;
Form1 mainForm = (Form1)this.Tag;
public void initClass()
{
class2 = mainForm.class1;
}
public void update()
{
class2.Name = this.textBoxName.text;
....
}
public void close()
{
mainForm.class1 = this.class2;
}
方法2: 使用static调用。
//Form1中:
ClassModel class1 ;
private void btnSysSet_Click(object sender, EventArgs e)
{
Form2 formSetting = new Form2();
formSetting.getClass1(calss1);
formSetting.Show();
}
Public static void getClass2(ClassModel class2)
{
class1 = class2
}
// form2中:
ClassModel class2;
public static void getClass1(ClassModel class1)
{
this.calss2= class1;
}
public void update()
{
class2.Name = this.textBoxName.text;
....
}
public void close()
{
Form1.getClass2(class2);
}
方法三: 窗体继承。
//Form1中:
ClassModel class1 ;
private void btnSysSet_Click(object sender, EventArgs e)
{
Form2 formSetting = new Form2(this);
formSetting.Show();
}
// form2中:
ClassModel class2;
Form1 mainForm;
public Form2(Form1 form1)
{
mainForm = form1;
class2 = mainForm.class1;
}
public void update()
{
class2.Name = this.textBoxName.text;
....
}
public void close()
{
mainForm.class1 = this.class2;
}
//form1中
private void btnSysSet_Click(object sender, EventArgs e)
{
Form2 formSetting = new Form2();//先new一个Form2
formSetting.Tag = this; //然后才传递了这个Form1对象.
formSetting.Show();
}
//form2中
Form1 mainForm;
public form2()
{
mianForm = (Form1)this.Tag; //这时候Tag值还是为空,因为还没有传递。
initClass();
}
public void initClass()
{
class2 = mainForm.class1;
this.textName = class2.textName; //初始化窗体的时候不能实现显示的值。
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void RefreshListBox()
{
listBox1.Items.Clear();
//Read xml add items to listbox
MessageBox.Show("Refreshed");
}
private void button1_Click(object sender, EventArgs e)
{
Form2 frmTarget = new Form2();
frmTarget.Show(this);//<---note the 'this'
}
}
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void Form2_Load(object sender, EventArgs e)
{
}
private void Form2_FormClosing(object sender, FormClosingEventArgs e)
{
((Form1)this.Owner).RefreshListBox();
}
}