从Backgroundworker方法获取传递给webbrowser控件的String

时间:2016-08-30 04:03:10

标签: c# foreach webbrowser-control

我试图弄清楚如何在后台工作者调用的方法循环中将字符串设置为公共值。

基本上我有一个foreach循环,它设置各种字符串值,然后解析它们。我有一个特定的if语句,用于计算设置为字符串的值。如果该字符串=“停止”,我想将结果字符串的值设置为公共值,然后可以由另一个表单访问,该表单是一个webbrowser控件。

我无法弄清楚如何将字符串设置为公共值。这就是我现在所拥有的:

主要形式:

 public string result
    {
        get { return result; }
        set { result = value; }
    }

然后在DoWork中我调用方法并在方法内部使用if语句来计算字符串并调用嵌入了webbrowser控件的表单。我以这种形式:

 private update updateform = null;

    public browser(Form callingForm) : this()
    {
        updateform = callingForm as update;
    }

 public browser()
    {
        InitializeComponent();
        webBrowser1.DocumentText = updateform.result;


    }

可以这样做吗?

1 个答案:

答案 0 :(得分:0)

您必须使用RunWorkerCompleted事件在GUI中进行更改。

例如:

private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
    // do calculation ...
    e.Result = resultString;      
}

private void backgroundWorker_RunWorkerCompleted(object sender, DoWorkEventArgs e)
{
    // check cancellation ...
    webBrowser1.DocumentText = e.Result;
}

另见MSDN