SQLite C#和DataGridView

SQLite C#和DataGridView,c#,sqlite,datagridview,C#,Sqlite,Datagridview,如果我从另一个窗体调用函数,尝试用数据填充datagridview,我会遇到问题。如果我调用私有void按钮中的函数,单击form2中的datagridview,那么一切都会正常工作,但如果我从另一个表单(Form1)调用函数,datagridview是空的 Form2中的代码,其中是datagridview 格式1中的代码: Form2 frm = new Form2(); frm.fill_grid(); 我收到消息“Yuhuuuu”,但datagridview

如果我从另一个窗体调用函数,尝试用数据填充datagridview,我会遇到问题。如果我调用私有void按钮中的函数,单击form2中的datagridview,那么一切都会正常工作,但如果我从另一个表单(Form1)调用函数,datagridview是空的

Form2中的代码,其中是datagridview 格式1中的代码:

       Form2 frm = new Form2();
       frm.fill_grid();
我收到消息“Yuhuuuu”,但datagridview为空

# 解决了的 # 在主窗体(Form1)中,我设置了实例

Form frm_Listusers = new form_Listusers(); 
但在此之后:

form_Listusers frm_Listusers = new form_Listusers();

我可以访问我的函数frm.fill_grid()

运行以下代码时:

Form2 frm = new Form2();
frm.fill_grid();
您只需创建Form2的一个实例,但显示的表单是Form1。 然后发生的事情是,您看到了Form1的DataGridView,您没有填充它,因为您是在Form2中创建的

如果要将Form2 addition的显示添加到Form1,请仅在末尾添加以下行:

frm.Show();
根据您想要的选项,有几种方式显示Form2(仅显示Form2、同时显示Form2等)

关于您看到的消息,这是因为: MessageBox.Show(“yuhuuu”);
此事件为所有应用程序触发,不取决于现在显示的表单。

更改此`。grid\u userlist.DataSource=dt;到网格用户列表。数据源=dt; 从另一个表单中的第二个表单类创建实例,然后调用form2的方法

 form2 frm2 = new fomr2;
 frm2.fill_grid()

Form2是Form1的MDI子级。我的函数fill_grid()是在form2(原始代码中的form_userlist)中声明的。我想,如果我点击Form1(父窗体)上的按钮来运行Form2中的填充网格函数(子窗体-此窗体隐藏在子窗体中)。Fill_grid()需要用数据库中的数据填充DataGridView,然后显示Form2。若我在一个按钮上调用Form2中的fill_grid(),点击函数,一切正常,我在DataGridView中得到了结果
 form2 frm2 = new fomr2;
 frm2.fill_grid()