如何在运行时重新加载数据网格视图 c#

How to reload the data grid view during runtime c#

每次 form 打开时,我都会重新加载 data grid view 的数据。

 Student_DetailEntities db = new Student_DetailEntities();
 private void Form1_Load(object sender, EventArgs e)
 {
     db.StudentTables.Load();
     studentTableBindingSource.DataSource = db.StudentTables.Local;
 }

为了确保 data tablerefreshdata grid view 中的 show,我试过这个代码

private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
{
        Application.Restart();
        Environment.Exit(0);
}

我试试

private void refreshToolStripMenuItem_Click(object sender, EventArgs e)
{
        this.Controls.Clear();
        this.InitializeComponent();
}
  

但是 data grid view 仍然 not reload。每次我 add new item,我都需要 closeopen 再次 form 才能在 data grid view.[=27 中显示=]

您可以使用 Shown 事件代替 Form.Load。这样您就可以在每次显示表单时重新加载数据。

Student_DetailEntities db = new Student_DetailEntities();
private void Form1_Load(object sender, EventArgs e)
{
    Shown += Form1_Shown; 
}
 
 
private void Form1_Shown(object sender, EventArgs e) 
{
     db.StudentTables.Load();
     studentTableBindingSource.DataSource = db.StudentTables.Local;
}

详见Form.Load,Form.Shown:

Order of events 'Form.Load', 'Form.Shown' and 'Form.Activated' in Windows Forms

@Caius Jard 在评论中指出,您可以通过“Form Designer --> Properties --> Events --> double 简单地添加 Form.Shown 事件处理程序单击 Shown 然后添加代码”,而不是我上面提到的 Form1_Load 中的 Shown += Form1_Shown;