C# 我有一个windows窗体,它必须使用按钮自动刷新
我有一个windows窗体,它被设置为使用如下按钮自动刷新:(代码不工作)怎么办 折叠|复制代码C# 我有一个windows窗体,它必须使用按钮自动刷新,c#,C#,我有一个windows窗体,它被设置为使用如下按钮自动刷新:(代码不工作)怎么办 折叠|复制代码 private void Refresh_Click(object sender, EventArgs e) { this.Refresh(); } 您所拥有的,应该刷新该事件所属的当前窗体。由于缺乏可理解的信息,很难弄清楚你的问题是什么(发生了什么,为什么你说它不起作用?等等)。不过,你可以试试 private void Refresh_Click(object sender, Even
private void Refresh_Click(object sender, EventArgs e)
{
this.Refresh();
}
您所拥有的,应该刷新该事件所属的当前窗体。由于缺乏可理解的信息,很难弄清楚你的问题是什么(发生了什么,为什么你说它不起作用?等等)。不过,你可以试试
private void Refresh_Click(object sender, EventArgs e)
{
this.Update();
}
因此,这两种方法的区别在于:
Control.Update()
Update()函数调用UpdateWindow函数,如果窗口的更新区域不是空的,则该函数通过向窗口(控件的)发送WM_PAINT消息来更新控件的客户端区域。此函数绕过应用程序消息队列直接向WNDPROC()发送WM_PAINT
因此,如果窗口更新区域以前是“无效的”,那么调用“更新”将立即“更新”(并导致重新绘制)无效
控件。刷新()
Refresh()调用Invalidate(true)使控件及其子控件无效,然后调用Update()强制绘制控件,以使无效是同步的
我希望这有帮助。这段代码肯定会刷新表单。然而,这不太可能产生任何明显的区别,Windows和Winforms已经非常擅长在没有任何帮助的情况下保持表单的更新。你还必须做一些其他的事情,一些可以使表单绘制不同的事情 一个简单的例子:
private bool drawMessage;
private void Refresh_Click(object sender, EventArgs e) {
drawMessage = !drawMessage;
this.Invalidate();
}
protected override void OnPaint(PaintEventArgs e) {
if (drawMessage) {
TextRenderer.DrawText(e.Graphics, "You clicked Refresh", this.Font, Point.Empty, this.ForeColor);
}
base.OnPaint(e);
}
你试过什么?你有密码吗?哪里不是做作业的地方。问题是什么?