是否可以在启动后更新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"但不是"测试"。
如何在Application.Run后更改状态栏?
答案 0 :(得分:1)
只需将代码添加到加载事件
即可 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
答案 1 :(得分:1)
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)
您还可以为表单创建一个类,并在其中添加事件处理程序。我建议给它一个读数:http://www.voidspace.org.uk/ironpython/winforms/
答案 2 :(得分:0)
您是否尝试过me.refresh()
或form.refresh()
?