不填写datagridview

时间:2010-10-02 13:03:43

标签: c# datagridview

我是一个填充datagridview当它打开第二个表单时,显示的值不会

为什么?

我的代码:

// in form1
private bool Method1()
{
    using (var form2 = new frmMain())
    {
        form2.RaiseLoadEvent(EventArgs.Empty);

    }
    return (true);
}

private void frm1_Load(object sender, EventArgs e)
{

    Method1();

    this.DialogResult = DialogResult.Cancel;

}

//在form2中

public void RaiseLoadEvent(EventArgs e)
{
    this.OnLoad(e);
}

private void OnLoad(EventArgs e)
{
    this.con = new OleDbConnection(this.ConnectionString());

    string strquery = "select * from english";

    this.dba = new OleDbDataAdapter(strquery, con);

    this.dba.Fill(this.ds);

    this.dataGridView1.DataSource = this.ds.Tables[0].DefaultView;
}
Program.cs中的

代码:

/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    frm1 frmsp = new frm1();

    if (frmsp.ShowDialog() == DialogResult.Cancel)
    {
        Application.Run(new frmMain());
    }

}

我写的代码是SplashScreen

我希望加载表单,然后显示form2

你有什么建议?

我想这样做1。

1 个答案:

答案 0 :(得分:0)

表格2被处理掉。然后使用新的Form2运行。

using (var form2 = new frmMain()) 
{ 
    form2.RaiseLoadEvent(EventArgs.Empty); 

} 

...创建并填充DataGrivView,但using()将处理frmMain对象。

然后你打电话......

Application.Run(new frmMain());

创建一个全新的frmMain()。

如果您的目标是在显示启动画面时填充网格,则需要分开开发它们。启动画面会显示一段时间,因此请使用计时器显示然后处理启动画面。在此期间,启动主窗体并使其保持不可见,直到填充网格。