Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单击按钮后刷新表单_C#_Sql_Winforms_Ado.net - Fatal编程技术网

C# 单击按钮后刷新表单

C# 单击按钮后刷新表单,c#,sql,winforms,ado.net,C#,Sql,Winforms,Ado.net,我得到了表articles where column(statusArticle=false)的第一个元素。问题是,我想在单击按钮后刷新表单,以便与下一个元素交互,但表单没有刷新,我尝试了几个代码,其中一个是application.restart,这太重了!如何在boutton click刷新表单而不重新启动应用程序 private void button_Click(object sender, EventArgs e) { using (DbEn

我得到了表articles where column(statusArticle=false)的第一个元素。问题是,我想在单击按钮后刷新表单,以便与下一个元素交互,但表单没有刷新,我尝试了几个代码,其中一个是application.restart,这太重了!如何在boutton click刷新表单而不重新启动应用程序

   private void button_Click(object sender, EventArgs e)
        {
            using (DbEntities db = new DbEntities())
            {
               Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
                if (firstArticle != null)
                {
                    firstArticle.statusArticle = true;
                    db.SaveChanges();
                    MessageBox.Show("Article validated", "OK");
                    this.Refresh();
                }
            }
        }

在类中创建以下内容:

private void ShowArticle(Article article)
{
  /* The code currently in your constructor for displaying the 
     first article goes here */
}
对于您的构造函数:

public MyForm()
{
  using(DbEntities db = new DbEntities())
  {
    Articles firstArticle = db.Articles.FirstOrDefault(u => u.statusArticle == false);
    if( firstArticle != null ) ShowArticle( firstArticle );
  }
}

在按钮中,单击处理程序而不是调用Refresh simple,将其替换为调用ShowArticle并传入“firstArticle”。上面的代码可以稍微清理一下,但应该可以。

在“刷新”时会发生什么?可以尝试使用“Response.Redirect(Request.Url.AbsoluteUri);”@nvoigt,在刷新时,我希望firstArticle的值将更改为下一个(firstArticle),因为旧的(firstArticle)。statusArticle=错误。您可能编写代码来显示表单上的第一篇文章。也许您可以再次调用它?Form类上的Refresh方法会使客户端区域无效,并强制重新绘制表单,并且不会重新填充控件的属性。您应该创建一个方法,该方法将接受第一篇文章并填充表单控件,然后调用该方法而不是“this.Refresh()”。非常感谢!那很有用!