刷新窗体窗口

本文关键字:窗口 窗体 刷新 | 更新日期: 2023-09-27 18:34:44

我正在制作一个简单的小Windows应用程序。这是我的主要功能:

static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    // This will be my Form object  
    Form1 robotPath = new Form1();
    Application.Run(robotPath);
    // at this point I'll try to make changes to my object
    // for instance I'll try to change a background image
    robotPath.changeImage();
}
但是,更改

对象后,更改不会反映在输出窗口中(背景不会更改(。我已经尝试了robotPath.refresh((和robotPath.invalidate((,但背景仍然没有改变。但是,当我使用按钮单击事件调用 changeImage 函数时,它可以工作。但是我希望在不使用按钮/鼠标事件的情况下更改它。(随着 Form1 对象的更改,背景会发生变化(有什么建议吗?

刷新窗体窗口

Application.Run()

在主窗体关闭之前不会返回。在程序关闭之前,Application.Run()后运行的所有代码都不会运行。这显然不是你想要的。

您可以通过重新排序main来轻松解决问题:

Form1 robotPath = new Form1();
robotPath.changeImage();
Application.Run(robotPath);

另一种方法是将调用changeImage移动到Form1的构造函数中,或者在表单生命周期的早期触发的某些事件,例如 Load .此选项可以更好地封装窗体的行为。