表格启动后如何更新?

How to update form after it has started?

winform启动后是否可以更新

例如。

import clr
clr.AddReference("System")
clr.AddReference("System.Windows.Forms")
from System.Windows.Forms import (Application, Form, StatusBar)

form = Form()
form.sb = StatusBar()
form.sb.Parent = form
form.sb.Text = "Demo"
Application.Run(form)
form.sb.Text = "Test"

我能看到 "Demo" 但看不到 "Test"。

如何在Application.Run之后更改状态栏?

只需在加载事件中添加代码

 private void Form_Load(object sender, EventArgs e)
    {
       sb.Text = "Test";
      Application.DoEvents();
    }

调用 do 事件以强制重绘表单。

VB

Private Sub Form_Load(Byval Sender As Object, Byval e As EventArgs)
      sb.Text = "Test"
      Application.DoEvents()
End Sub

你试过me.refresh()form.refresh()了吗?

Application.Run(form) 在当前线程上启动标准应用程序循环。这意味着在表单关闭之前,行 form.sb.Text = "Test" 实际上不会做任何事情。您可以使用 form.Show() 显示表单,然后可以更新它。

您可以做以下两件事之一。首先,按照 Wheels73 的建议,在表单加载事件上添加一个事件处理程序。您可以使用以下几行来完成。

def form_load(sender, e):
    sender.sb.Text = 'Test'

form.Load += form_load
Application.Run(form)

您还可以为表单创建一个 class 并在其中添加事件处理程序。我建议读一读:http://www.voidspace.org.uk/ironpython/winforms/