是否将标签传递给不更新label.text的方法



我有一个winform中的标签,我正试图从启动按钮传递该标签。这是我的代码:

public void DirectLinkTask1(string DirectLinkText, string status)
{
{
Start(status);
string url = driver.Url;
LogIn(status);
while (string.IsNullOrEmpty(DirectLinkText))
{
status = "Waiting for direct link input...";
}
driver.Url = $"{DirectLinkText}";
status = "Direct Link opened, adding to cart...";
try
{
AddToCartDirectLink(DirectLinkText, status);
}
catch
{
status = "Direct Link Error";
}
}
}

按钮代码:

string status1 = labelStatus1.Text;
if (TaskTypeBox.Text.Contains("Keyword"))
{
worker = new BackgroundWorker();
worker.DoWork += (obj, ea) => KeywordTask1(txtKWDL1.Text, status1);
worker.RunWorkerAsync();
}
else if (TaskTypeBox.Text.Contains("DirectLink"))
{
worker = new BackgroundWorker();
worker.DoWork += (obj, ea) => DirectLinkTask1(txtKWDL1.Text, status1);
worker.RunWorkerAsync();
}
else
{
labelStatus1.Text = "Please select task type";
}

标签根本没有更新,不确定原因。我是C#的新手,我相信这只是一个简单的错误。它会在else语句中更新为"请选择任务类型",但仅此而已。提前感谢您的帮助。如果我能提供其他帮助,请告诉我:(

如果您试图更改BackgroundWorker中的标签文本,则需要引入ProgressChangedRunWorkerCompleted事件处理程序

因此,即使是在不同线程上执行的BackgroundWorker,这两个事件处理程序也将在主线程上执行,并可以正确访问表单控件。

最新更新