MessageBox.Show("添加新记录成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); frmInit(); frmSearchOrder fso = new frmSearchOrder(); DataTable dt = od.SelectOrder(); DataView dv = dt.DefaultView; //fso.DataBindOrder(); fso.dgrdOrder.DataSource=dv; fso.dgrdOrder.Refresh(); 我把frmSearchOrder上的DataGrid设置为public添加成功,实现刷新没反应,继续自己顶
new出来的窗口不行吧,主窗口和子窗口使用一个数据集对象,子窗口更新完了,主窗口会自动更新的
你已经成功一半了但是忽略了一点。frmSearchOrder fso = new frmSearchOrder(); 之后,fso 已经不是你之前打开的那个基准窗口了,而是New了一个新事例。所以:需要更改用于添加记录的那个窗口的构造函数。假设你添加记录的窗口为frmSearchOrderpublic class frmSearchOrder : Form { Form fso;//fso也就是你的基准窗口 Public frmSearchOrder(Form b) { fso=b;//重点在这里
public class frmAddOrder: Form { frmSearchOrder fso;//fso也就是你的基准窗口 Public frmAddOrder(Form b) { fso=b;//重点在这里 注:D:\My Documents\Visual Studio Projects\AurineOrder\frmAddOrder.cs(79): 无法将类型“System.Windows.Forms.Form”隐式转换为“AurineOrder.frmSearchOrder”
if (f.ShowDialog() == DialogResult.OK)
{
gridView1.DataSource = ds.Tables[0].DefaultView;
}
如果直接插入数据库中上面的方法肯定不行,要重新更新数据集
如果是插在DataSet 中上述方法应该是可行的
frmInit();
frmSearchOrder fso = new frmSearchOrder();
DataTable dt = od.SelectOrder();
DataView dv = dt.DefaultView;
//fso.DataBindOrder();
fso.dgrdOrder.DataSource=dv;
fso.dgrdOrder.Refresh();
我把frmSearchOrder上的DataGrid设置为public添加成功,实现刷新没反应,继续自己顶
你已经成功一半了但是忽略了一点。frmSearchOrder fso = new frmSearchOrder(); 之后,fso 已经不是你之前打开的那个基准窗口了,而是New了一个新事例。所以:需要更改用于添加记录的那个窗口的构造函数。假设你添加记录的窗口为frmSearchOrderpublic class frmSearchOrder : Form
{
Form fso;//fso也就是你的基准窗口
Public frmSearchOrder(Form b)
{
fso=b;//重点在这里
DataTable dt = od.SelectOrder();
DataView dv = dt.DefaultView; fso.dgrdOrder.DataSource=dv;
fso.dgrdOrder.Refresh(); }
}之后:在你的基准窗口调用这个添加记录窗口的时候就应该写成:
frmSearchOrder fso=New frmSearchOrder(this);
fso.Show();
frmAddOrder为添加窗口
两窗体都为mdi子窗体当我在frmAddOrder窗体上按"添加"按钮,frmSearchOrder上的DataGrid数据进行刷新是这样的
{
frmSearchOrder fso;//fso也就是你的基准窗口
Public frmAddOrder(Form b)
{
fso=b;//重点在这里 注:D:\My Documents\Visual Studio Projects\AurineOrder\frmAddOrder.cs(79): 无法将类型“System.Windows.Forms.Form”隐式转换为“AurineOrder.frmSearchOrder”
DataTable dt = od.SelectOrder();
DataView dv = dt.DefaultView; fso.dgrdOrder.DataSource=dv;
fso.dgrdOrder.Refresh(); }
}
窗体传参:
1 。 通过重写构造函数
2 。 通过声明为public
3 。 定义static 变量存储
//加在frmAddOrder中
public delegate void test();
public event test onTest; private void Test()
{
if (onTest != null)
{
onTest(intTest);
}
}//加在frmSearchOrder中
frmAddOrder frmadd=new frmAddOrder();
frmAddOrder.onTest += new frmAddOrder.test(this.DataShow)
private void DataShow()
{
...................//你的填充代码.
} 希望对你有帮助。
Test() ;
希望对你有帮助。