gpt4 book ai didi

c# - 表单和代码不同步

转载 作者:行者123 更新时间:2023-11-30 18:41:57 25 4
gpt4 key购买 nike

我有一个文本框,里面有一些文本(“你好”)。如果我将文本更改为其他任何内容并从文本框中获取文本(通过代码),即使我更改了它,我也会得到“hello”。

在另一种情况下,当我更改复选框的选中状态时,该复选框不会在视觉上勾选(或取消勾选)。

有人知道发生了什么以及如何同步它们吗?

我打开了一个新项目,那是我表单上的唯一功能:

public void Switch()
{
Checkbox1.Checked = !Checkbox1.Checked;
}

我从 program.cs 中调用它:

static MainForm MyForm;
MyForm = new MainForm();
MyForm.Switch();

最佳答案

我假设您只是在 Main 中实例化 MainForm,然后调用 Switch

这意味着您没有在 UI 线程上发送请求。

所以,你可以Invoke在 UI 线程上运行的代码:

public void Switch()
{
// true if off of the UI thread, and thus must be Invoked
if (this.InvokeRequired)
{
// off UI thread; put it onto it
this.Invoke(Switch);
}
else
{
// on UI thread
Checkbox1.Checked = ! Checkbox1.Checked;
}
}

您应该只从 UI 线程与 UI 交互。除非您希望从 UI 线程调用它,或者您为其他人提供了这样做的方法(一些公共(public) API),否则您不应该在代码中乱扔 Invoke

关于c# - 表单和代码不同步,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6195848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com