想问一下各位大大...
我今天有两个Form...
当我在第一个form1按下新增时跑到form2...
可是我今天要在form2做连续新增的动作...
想问一下要怎么样我才能...当我新增一笔时就更新Form1的画面...
也就是Form1马上就会有我新增的资料...
PS:我用的是VS2003...WinForm...
我今天有两个Form...
当我在第一个form1按下新增时跑到form2...
可是我今天要在form2做连续新增的动作...
想问一下要怎么样我才能...当我新增一笔时就更新Form1的画面...
也就是Form1马上就会有我新增的资料...
PS:我用的是VS2003...WinForm...
你的问题是不是这样的:
form1是显示记录列表的窗体,form2是新增记录的窗体
在form1点"新增"->焦点到form2->在form2中增加很多条记录->在form1中能实时看到新增的结果?
也可以重新LOAD你的FORM1,不过LOADFORM1这种方法要求数据量得小啊。
再或者你不将form2作为模式对话框显示并且想实时反映记录的增加的话也可以在form1里写一个public的添加记录方法,然后在form2里增加记录时直接调用form1里这个方法。
在Form1中定一个public Form frm2 = null;变量,当frm2中Form1 frm1 = new Form1();frm1.frm2 = this;frm1.show();这样就可以在form1中控制Form2
在Form2里面定义委托并且声明事件Form2: public delegate void RefreshDlg(参数);//参数你自己定,需要在Form1中用什么这里就写什么样的参数 public event RefreshDlg refreshDlg;
在Form1中调用Form2的时候,这样写
Form1:
Form2 f2 = new Form2();
f2.refreshDlg += new Form2.RefreshDlg(f2_refreshDlg);Form1中调用的Form2的refreshDlg事件的响应方法:
void f2_refreshDlg(参数)
{
//这里做你要进行的Form1的增加数据的操作
}
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
Form2 frm2 = new Form2(this);
frm2.Show();
}
//注意以下方法定义为共有的
public string MyText
{
get { return this.label1.Text; }
set { this.label1.Text = value; }
} public void binding()
{
//绑定数据源
} }
Form2 public partial class Form2 : Form
{
//有一个参数的构造方法
//或者 private Form frm=new Form();
//使用frm是 强制转换" (From1)frm "
private Form1 frm=new Form1();
public Form2(Form1 frm)
{
InitializeComponent();
this.frm = frm;
}
private void button1_Click(object sender, EventArgs e)
{
this.frm.MyText = "AAAAAA";
this.frm.binding();//使Form1重新绑定数据源
}
}
如果我在Form2做一个Form1 mf = new form1();
这样不是新建一个Form吗??
可是我原本的Form1并没有关闭…
且我是希望在原本的form1上显示我Form2新增的资料…??
好多方法…实在有点给它混乱耶!!
f2.refreshDlg += new Form2.RefreshDlg(f2_refreshDlg);
會有錯誤耶...
Form2.RefreshDlg denotes a 'field' where a 'class' was expected
??這是什麼意思呀??且為我什麼我在vs2003的Document找不到refreshDlg....
在Form1的DataSet设为internal....(因为我要更新的是DataSet)
再要开启Form2的地方多加个Form2.owner = this....
而Form2要去更新Form1的地写新建个Form1(Form1 mf = new Form1())
而就可以在Form2直接更新From1的DataSet了(DataRow dr = mf.DataSet.table["XXX"].newRow();)
以上是小妹的实做方法...
希望可以帮到跟我一样的新手...