C#刷新Windows窗体

7

我有一个Windows表单,需要自动刷新而不使用任何按钮来刷新表单。

目前我使用一个按钮来刷新表单。但是我需要每隔1分钟自动刷新表单。

在Windows表单应用程序中可以实现此操作。


请参考 https://dev59.com/Wm035IYBdhLWcg3wef9y 获取 ASP.NET 相关信息,或者参考 https://dev59.com/H1XTa4cB1Zd3GeqP1WiB 获取 WPF 相关信息。如果您想自定义,可以使用定时器来触发自动刷新。 - Sandeep G B
5个回答

5

我不确定为什么您需要刷新表单,但是将按钮后面的任何代码放在计时器事件中。您已经有了代码,所以只需创建一个计时器,设置所需长度并打开它。

这是您需要的代码:

  Timer myTimer = new Timer();
  myTimer.Elapsed += new ElapsedEventHandler( TimeUp );
  myTimer.Interval = 1000;
  myTimer.Start();

public static void TimeUp( object source, ElapsedEventArgs e )
{
    //Your code here
}

2
我认为OP的意思是在表单上刷新一些数据。 - tzup
不建议使用System.Timers.Timer,因为它会隐藏错误(所有未处理的异常都将被静默忽略)。建议使用System.Threading.Timer。根据MSDN文档,在.NET Framework 2.0及更早版本中,Timer组件会捕获并抑制Elapsed事件处理程序引发的所有异常。这种行为可能会在未来的.NET Framework版本中发生变化,但目前尚不清楚是否已经改变。 - Pankaj
感谢您的回答。由于这是我第一个项目,我不知道在哪里粘贴您代码的前四行。我需要在窗体的构造函数中进行粘贴,请帮帮我。 - bharathi
@bharathi - 前四行需要在某个方法中。通常它在Form_Load方法中或者任何在窗体启动时运行的方法中。 - IAmTimCorey
我已经将前四行添加到了加载表单中。在public static void TimeUp(object source,ElapsedEventArgs e){getdata();}中,getdata将从数据库获取数据。一旦将此getdata方法添加到Time up中,它会显示错误1:非静态字段、方法或属性“。”需要对象引用。即使我尝试删除static也不起作用。 - bharathi
我创建了一个对象并调用了getdata方法。但它仍然不起作用。 - bharathi

2
您可以在表单上添加一个计时器,并在Form_Load事件中启用它。将计时器值设置为60000毫秒。在Timer_Tick函数中,您可以放置用于刷新的代码。

2
使用System.Windows.Forms.Timer
当指定的计时器间隔已过并且计时器已启用时,会发生Timer.Tick事件。您可以使用它来刷新您的表单。
 // This is the method to run when the timer is raised.
private static void Timer_Tick(Object myObject, EventArgs myEventArgs) 
{ // Refresh Form }

使用Timer.Interval属性来指定计时器间隔。在您的情况下,您需要将其设置为60,000:
Timer.Interval = 60000;

这些是关于它的一些教程:

http://www.codeproject.com/KB/cs/timeralarm.aspx

http://www.dotnetperls.com/timer

http://www.c-sharpcorner.com/UploadFile/mahesh/WorkingwithTimerControlinCSharp11302005054911AM/WorkingwithTimerControlinCSharp.aspx


1
使用计时器控件,将间隔设置为60*1000毫秒(1分钟),在Tick事件中使用代码刷新表单。

0

按照以下步骤进行操作:

  1. 在您的表单中添加一个计时器
  2. 将值(Interval)设置为1000
  3. 双击表单
  4. 在Form_Load中键入以下内容:

    timer1.Start(); //将您的计时器名称替换为"timer1"

  5. 双击计时器并在timer_tick中键入以下内容:

    this.Refresh();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接