刷新表单窗口

时间:2012-05-19 11:11:45

标签: c#

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

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对象的更改,背景会发生变化) 有什么建议吗?

1 个答案:

答案 0 :(得分:3)

Application.Run()
在主窗体关闭之前,

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

您可以通过重新排序main

轻松解决问题
Form1 robotPath = new Form1();
robotPath.changeImage();
Application.Run(robotPath);

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