[英]Passing a textbox to a method. When using a textchanged event. C# visual studio
[英]Passing Custom Object to Progress Changed method. C#
我是C#创业的初期,因此,如果这是一个简单的问题,我深表歉意。 我一直在寻找答案,但找不到任何东西。
基本上,我试图将自定义对象从后台工作线程传递给进度更改的方法,以便可以更新一些标签和富文本框。 我知道使用report progress方法可以传递一个int和一个对象。 但是,当我这样做时,它不允许我在bw_progressChanged方法中访问它。
这是我的代码的一些片段-
Bacgkround工人
private void bw_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = sender as BackgroundWorker;
UserStateSettings user = new UserStateSettings();
user.rtbText = "Text";
worker.ReportProgress(0, user);
if ((worker.CancellationPending == true))
{
e.Cancel = true;
}
else
{ .....}
}
UserStateSettings类
public class UserStateSettings
{
string _rtbText;
int _productsProcessed;
public string rtbText
{
get
{
return _rtbText;
}
set
{
_rtbText = value;
}
}
Bw_ProgressChanged (我正在尝试将对象属性rtbtext放入此处的RTF文本框中,但它根本不会让我。)
private void bw_ProgressChanged(object sender, ProgressChangedEventArgs e)
{
this.richTextBox1.Text = ....
this.Refresh();
}
希望这是有道理的,如果有人能阐明一点,我将不胜感激!
您应该能够从e.UserState属性中拉出对象。 您需要将其强制转换为您的类型才能使用它。
User user = e.UserState as User;
if (user != null) {
// populate ui fields
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.