是否可以在 C# winforms 中一次将文本写入多个文本框?

Posted

技术标签:

【中文标题】是否可以在 C# winforms 中一次将文本写入多个文本框?【英文标题】:Is it possible to write a text onto multiple textboxes at once in C# winforms? 【发布时间】:2021-09-02 02:14:14 【问题描述】:

是否可以一次将文本写入多个文本框(参见代码)?除了一次将文本写入文本框之外,还有什么更简单的语法可以做到这一点?

我知道我可以为此使用 for 循环,但除了使用循环之外还有其他方法吗?

谢谢!

示例代码:

DateTime tpi1 = DateTime.Now;

tb05.Invoke((MethodInvoker)(() => tb05.Text = tpi1.ToString()));
tb15.Invoke((MethodInvoker)(() => tb15.Text = tpi1.ToString()));
tb25.Invoke((MethodInvoker)(() => tb25.Text = tpi1.ToString()));
tb35.Invoke((MethodInvoker)(() => tb35.Text = tpi1.ToString()));
tb45.Invoke((MethodInvoker)(() => tb45.Text = tpi1.ToString()));
tb55.Invoke((MethodInvoker)(() => tb55.Text = tpi1.ToString()));

【问题讨论】:

是的,有可能。例如,您可以创建一个文本框集合并在其上使用 foreach 来更改文本,或者使用 Controls.TypeOf<TextBox>Where 使用一些 serach 模式,如 "tbXX"。适合什么? 当我使用循环时,它会导致一点延迟,应该避免我的代码的其他部分工作。但我会调查 Control.TypeOf 你提到的。 您确定首先需要Invoke 吗?如果这样做,请创建一个 Invoke 并在其 lambda 内循环。 您还可以在每个文本框上添加一个事件处理程序,这样当您更改一个时,其他所有的都会更改。理论上,我更喜欢这个选项,而不考虑其他事情,只考虑提供的代码。为什么调用?这段代码是否在一个单独的线程中? 我是 C# 编程的初学者。我只是想避免跨线程操作错误,这就是我使用它的原因。 【参考方案1】:

我不会这样做,但从技术上讲,你可以通过 WinForm 上的 MVVM 方法来做到这一点

【讨论】:

以上是关于是否可以在 C# winforms 中一次将文本写入多个文本框?的主要内容,如果未能解决你的问题,请参考以下文章

在 python openCV 中一次将许多图像读入内存

c#中winform中combobox中文本居中

有没有办法在 Swift 中一次将委托分配给同一类的多个对象?

尝试在 mvc 3 中一次将两个模型传递到同一个视图时出现问题

C#关于winform线程更新form的文本框输出的问题

C# winform 文本框里,怎么设置数字的格式?