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

C# 如何在运行时c期间重新加载数据网格视图#,c#,forms,datatable,datagridview,application-restart,C#,Forms,Datatable,Datagridview,Application Restart,每次打开表单时,我都会重新加载数据网格视图的数据 Student_DetailEntities db = new Student_DetailEntities(); private void Form1_Load(object sender, EventArgs e) { db.StudentTables.Load(); studentTableBindingSource.DataSource = db.StudentTables.Local; } 为了确保数据表在

每次打开
表单时,我都会重新加载
数据网格视图的数据

 Student_DetailEntities db = new Student_DetailEntities();
 private void Form1_Load(object sender, EventArgs e)
 {
     db.StudentTables.Load();
     studentTableBindingSource.DataSource = db.StudentTables.Local;
 }
为了确保
数据表
数据网格视图
中是
刷新
显示
,我尝试了以下代码

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();
}
  
但是
数据网格视图
仍然
不重新加载
。每次我
添加
项目
,我都需要
关闭
再次打开
表单
,以便在
数据网格视图中显示它

您可以使用事件而不是
表单。加载
。这样您就可以在每次显示表单时重新加载数据

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;
}
请参阅
表单加载
表单的详细信息。如图所示

@Caius Jard在评论中指出,您可以简单地添加
表单。通过“表单设计器-->属性-->事件-->双击显示,然后添加代码”来显示
事件处理程序,而不是
显示+=Form1\u显示
在我上面提到的
Form1\u Load
中。

您可以使用事件而不是
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;
}
请参阅
表单加载
表单的详细信息。如图所示



@Caius Jard在评论中指出,您可以简单地添加
表单。通过“表单设计器-->属性-->事件-->双击显示,然后添加代码”来显示
事件处理程序,而不是
显示+=Form1\u显示
在我上面提到的
Form1\u Load
中。

如何打开
Form1
?当我运行程序时,它将打开包含数据网格视图的Form1。要添加新项的另一个表单只有在用户单击Form1上的菜单条时才会打开。您应该将
Form1\u Load
的代码放入
refreshToolStripMenuItem\u单击
我已经尝试过了。但这只会让它变得多余。另一个菜单条显示在上一个菜单条下。如何打开
form1
?当我运行程序时,它将打开包含数据网格视图的form1。要添加新项的另一个表单只有在用户单击Form1上的菜单条时才会打开。您应该将
Form1\u Load
的代码放入
refreshToolStripMenuItem\u单击
我已经尝试过了。但这只会让它变得多余。另一个菜单条显示在上一个菜单条下。你说得对。我也补充了你的建议。感谢您的贡献。我已经添加了所示的
表单
表单加载
。但当我重新启动应用程序时,它仍然无法重新加载。数据网格视图仍然显示相同的结果。您不需要
应用程序。重新启动
只需尝试使用即可。您的意思是我使用
Form f=new Form();f、 ShowDialog=DialogResult.OK
刷新工具条带菜单项下单击
?这取决于您需要什么,您可以使用ShowDialog作为
表单f=new Form();f、 ShowDialog()或者您可以使用
var f=new Form();f、 Show()。你是对的。我也补充了你的建议。感谢您的贡献。我已经添加了所示的
表单
表单加载
。但当我重新启动应用程序时,它仍然无法重新加载。数据网格视图仍然显示相同的结果。您不需要
应用程序。重新启动
只需尝试使用即可。您的意思是我使用
Form f=new Form();f、 ShowDialog=DialogResult.OK
刷新工具条带菜单项下单击
?这取决于您需要什么,您可以使用ShowDialog作为
表单f=new Form();f、 ShowDialog()或者您可以使用
var f=new Form();f、 Show()