窗体1: public partial class Form1 : Form { public delegate void DelegateRefreshDGV(); public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) {
public partial class Form1 : Form { TextBox txtBox; public Form1() { InitializeComponent(); this.Text = "我是窗体1"; txtBox = new TextBox(); this.Controls.Add(txtBox);
Form2 f2 = new Form2() { Text = "我是窗体2" }; f2.ShowDialog(this); txtBox.Text = f2.txtBox.Text; } } public class Form2 : Form { public TextBox txtBox; public Form2() { txtBox = new TextBox(); this.Controls.Add(txtBox); } } 给分
2.在添加数据窗体里保存显示窗体的实例
3.在添加数据窗体close的时候调用显示的窗体实例的刷新方法
模态窗关闭后,对象并没有结束生命周期,通过它引用还可以调用你设置的信息,做操作就行了。
提下我的想法:
如果你有新建两个form1 和 form2
如果你的退出事件在form1中,
click_back(object sender,EventArgs e)
{
//关掉当前的窗口
this.form1.close();
//开启新的窗口
form2 fm= new form2();
fm.ShowDialog();
}
这样你就打开了你所谓的有gridview的窗口了,那么你可以在你的构造函数中重新加载数据了
就是在form2中的函数public form2()
{
InitializeComponent();
//下面开始刷新你的数据
gridview.DataSource=xxxxxx;
}这样说的清楚了吧
在这之后调用刷新数据的方法就行了啊
if(form.ShowDialog()==DialogResult.Cancle)
刷新数据;//重新绑定datagridview数据
frm2 fm=new frm2();
fm2.Show();
1.如果新增数据窗体Form2是数据显示窗体Form1的弹出窗体:
form1中弹出form2的时候这么写
private void ShowForm2()
{
Form2 form2 = new Form2();
from2.show();
Form1.刷新方法();
}
2.如果新增数据窗体Form2不是数据显示窗体Form1的弹出窗体:
首先form1中添加public类型的刷新方法
public void refrish(){}
form2中关闭方法内添加如下代码
Form1 form1 = new Form1();//创建窗体1实例
form1.refrish();//调用窗体1刷新方法
3.如果想要关闭窗体2的时候显示窗体1就更简单了
窗体2关闭时增加代码
Form1 form1 = new Form1();//创建窗体1实例
form1.show();
需要这么麻烦吗?刷新数据的方法应该还是在显示数据的窗体里使用啊
唯一要判断的,是添加数据的窗体到底添加成功了还是没成功,没成功不必刷新可以用form.DialogResult来判断
1:................我忘了!
2: 用构造函数做,在Form2里可以操作Form1里所有Public方法
单击退出隐藏插入那个窗体
然后显示查询窗体
查询的时候写在load事件不就好了吗
frm2 fm=new frm2();
fm2.Show();
窗体也是类,先new个对象,在执行对象的方法
http://blog.csdn.net/qiujialongjjj/article/details/8229308
public partial class Form1 : Form
{
public delegate void DelegateRefreshDGV();
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
DelegateRefreshDGV dgv=new DelegateRefreshDGV (refreshDGV);
Form2 f2 = new Form2(dgv);实例化窗体2
f2.Show();弹出窗体2
}
private void refreshDGV()// 刷新的方法
{
}
}窗体2 调用委托:
public partial class Form2 : Form
{
private Form1.DelegateRefreshDGV dgv;
public Form2(Form1.DelegateRefreshDGV _dgv)
{
InitializeComponent();
this.dgv = _dgv;
} private void button1_Click(object sender, EventArgs e)
{
dgv();调用委托方法
this.Close();
}
}
如果只是需要那个类的一个方法,建议你将此方法封装成一个公用类,然后两个窗口可以一起调用。
如果是需要第二个窗体运作,但又不需要第二个窗体出现,可以创建第二个窗体然后 hiden(),
记得将方法写成pbulic 然后直接用实例调用即可。
{
TextBox txtBox;
public Form1()
{
InitializeComponent();
this.Text = "我是窗体1";
txtBox = new TextBox();
this.Controls.Add(txtBox);
Form2 f2 = new Form2() { Text = "我是窗体2" };
f2.ShowDialog(this);
txtBox.Text = f2.txtBox.Text;
}
} public class Form2 : Form
{
public TextBox txtBox;
public Form2()
{
txtBox = new TextBox();
this.Controls.Add(txtBox);
}
}
给分