gpt4 book ai didi

c# - 如何使用事件更新类中的 TextBox?

转载 作者:行者123 更新时间:2023-11-30 16:36:20 32 4
gpt4 key购买 nike

我想用正在从类文件处理的数据更新 winforms 中表单的 textbox

示例:

Class.RunProcess();

在 RunProcess 内部,我想触发一个事件,该事件将使用我在获胜表单中传递的文本更新文本框。

我知道您可以使用事件来做到这一点,所以我不必将 textbox 公开或将其传递到我拥有的许多方法中,我只是不太确定如何开始。

编辑:也许我只是不清楚。

我有一个带有文本框的窗口。

我有一个运行进程的按钮。

该过程在表单类之外的类文件中。

在这个过程方法中,我希望能够更新主窗体上的文本框,而不必将 TextBox 作为参数传递给我将拥有的所有方法(我目前有 6 个,而且会更多)。

我想我可以订阅一个事件,允许我在我的类中运行过程时在文本框中显示一条消息。

最佳答案

可能是时候考虑了:

  1. 将你的文本框数据绑定(bind)到你的类
  2. 模型/ View /演示者 (MVP)

对于 #1(数据绑定(bind)),您可以在您的类上使用 INotifyPropertyChanged 接口(interface)并引发已更改属性的事件。

public class BusinessModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

private int _quantity;
public int Quantity
{
get { return _quantity; }
set
{
_quantity = value;
this.OnPropertyChanged("Quantity");
}
}

void OnPropertyChanged(string PropertyName)
{
if (this.PropertyChanged != null)
{
this.PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
}
}

在您的表单中,您可以通过多种方式将文本框的 .Text 属性绑定(bind)到对象。通过 UI 或代码。

链接:

现在,如果您需要添加到已经存在的文本(例如在您的示例中),您可以跟踪类中的完整文本或从类中引发事件并在表单代码中响应。在类里面跟踪它会更好——您真的根本不需要表单中的任何逻辑,这让我们回到绑定(bind)和/或某种形式的 MVP/MVC。

关于c# - 如何使用事件更新类中的 TextBox?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/988693/

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