a窗体的“输入”button代码如下
private void btn_InputReplaceFrame_Click(object sender, EventArgs e)
{
MainForm f = new MainForm(UserID, Password, UserType);
f.LoadData("ReplaceFrameDetail");//调用mainform窗体的LoadData事件重新绑定mainform中的Datagridview
}
b 窗体的LoadData事件代码如下[/color] public void LoadData(string Type)
{
#region"绑定镜架换料表"
if (Type == "ReplaceFrameDetail" || Type == "All")
{
string SelFrameReplaceDetail = @"SELECT * FROM [RLF.REPLACE_FRAME_HEAD] as rfh ";
DataTable dtFrameReplaceDetail = db.ExceComdReturnDataTable(SelFrameReplaceDetail, CommandType.Text, null);
if (dtFrameReplaceDetail != null && dtFrameReplaceDetail.Rows.Count > 0)
{
this.dgv_ReplaceFrameHead.DataSource = dtFrameReplaceDetail;
}
else
{
DataTable dt2 = (DataTable)dgv_ReplaceFrameHead.DataSource;
dt2.Rows.Clear();
dgv_ReplaceFrameHead.DataSource = dt2;
}
程序执行完全没有错,执行sql后得到的Datatable的数据也是正确的,就是绑定后数据还是没变化,很郁闷。。不知道是哪里出了问题,请各位前辈赐教!!
------解决思路----------------------
MainForm f = new MainForm(UserID, Password, UserType);
第一句就错了
你这是把主窗体给重新实例化了一份
那么调用的根本就不是当前显示的那个窗体里的函数,而是新窗体里的函数
那么这个函数操作的当然也不是当前显示窗体里的控件,而是新窗体中的控件
你当前显示的窗体当然是没有反应了