我正在尝试更新从控制台应用程序启动的 Windows 窗体中标签内的文本,作为示例,我创建了此代码。
static void Main(string[] args)
{
Form form = new Form();
Label label = new Label();
label.Text = "hi";
form.Controls.Add(label);
form.ShowDialog();
Thread.Sleep(2000);
label.Text = "bye";
label.Invalidate();
label.Update();
//Refresh Doesn't work either
//_BuyLabel.Refresh();
Application.DoEvents();
}
我已经完成了我的研究,但我对 Windows 窗体的了解非常有限,已经包含了用于此的库并且不是问题。
我还需要做什么来更新文本或任何其他控制功能?
试试这个:
class Program
{
private static Form form = new Form();
private static Label label = new Label();
static void Main(string[] args)
{
label.Text = "hi";
form.Controls.Add(label);
form.Load += Form_Load; // Add handle to load event of form
form.ShowDialog();
Application.DoEvents();
}
private async static void Form_Load(object sender, EventArgs e)
{
await Task.Run(() => // Run async Task for change label.Text
{
Thread.Sleep(2000);
if (label.InvokeRequired)
{
label.Invoke(new Action(() =>
{
label.Text = "bye";
label.Invalidate();
label.Update();
}));
}
});
}
}
我在我的电脑上运行它,然后工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句