我一直想弄清楚如何让我的文本框的文本或其他属性从一个后台工作。有人知道怎么做这个吗?我不能将它作为参数传递,因为它需要实时。谢谢您的帮助!来自后台工作者的文本框文本?
回答
我认为你只是需要调用属性(伪代码):
private void bgw1_DoWork(object sender, DoWorkEventArgs e)
{
// looping through stuff
{
this.Invoke(new MethodInvoker(delegate { Text = textBox1.Text; }));
}
}
谢谢..我没有意识到这很简单。 – user556396
我被压制,你没有提到异常*跨线程操作无效:控制从其创建的线程以外的线程访问。*在您的问题中。 – Bolu
使用ReportProgress方法和事件背景工人。这将切换到正确的线程为你。
我想你应该使用invoke方法。
这是我的例子。
delegate void myDelegate(string name);
//...
private void writeToTextbox(string fCounter)
{
if (this.InvokeRequired)
{
myDelegate textWriter = new myDelegate(displayFNums);
this.Invoke(textWriter, new object[] { fCounter });
}
else
{
textbox1.Text = "Processing file: " + fileCounter + "of" + 100;
}
}
//...
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
//...
writeToTextbox(fileCounter.ToString());
}
在dowork我操纵一些文本文件,我通知用户有多少文件我已经处理到目前为止。
用您的实际方法名称替换“displayFNums” “writeToTextbox” – dataCore
或者如果有必要在WPF:
private void bgWorker_DoWork(object sender, DoWorkEventArgs e)
{
string text = null;
myTextBox.Dispatcher.Invoke(new Action(delegate()
{
text = myTextBox.Text;
}));
}
- 1. 在后台工作人员中更新文本框
- 2. 尝试从后台工作写入一个文本框在GUI
- 3. 自动完成文本框不工作
- 4. 来自后台工作者的UI访问问题
- 5. VB.NET DataGridView加载来自后台工作者和SQLDataReader的数据
- 6. 来自ssh远程文本文件的多行文本框
- 7. 文本框不工作?
- 8. HTML文本框不工作
- 9. 文本框不工作
- 10. 文件对话框,从后台工作
- 11. AppHarbor后台工作者,无法加载文件或程序集WebActivator版本= 1.5.2.0
- 12. C#,后台工作者类
- 13. C#后台工作者sql
- 14. 将Excel工作表保存为来自IronPython的文本文件
- 15. 使用VBA格式化来自Mulitline文本框的文本
- 16. Excel VBA-来自活动单元格中文本框的文本
- 17. 来自文本框的文本从字符串^转换为int
- 18. 文本框有它,来自DDl的文本
- 19. 来自表单文本框的JavaScript VAR
- 20. 来自文本框的格式异常
- 21. 来自文本框的最小数量?
- 22. 设置来自jquery的文本框值
- 23. 来自文本框的Javascript变量
- 24. 来自文本框的数组值
- 25. 来自文本框的SQLite表名值
- 26. 来自后台进程的基本Uri
- 27. Userform文本框像html文本框一样工作
- 28. 获取后台任务来不断更新文本框
- 29. 文本框在HTA文本提交后,从文本框
- 30. 使用后台工作人员将文本追加到另一个班级的文本框中
也许一些代码。 – ata
为什么你现在的代码不工作?你有例外吗?如果是的话,什么样的? – svick
你是什么意思的“从背后”? –