我一直想弄清楚如何讓我的文本框的文本或其他屬性從一個後臺工作。有人知道怎麼做這個嗎?我不能將它作爲參數傳遞,因爲它需要實時。謝謝您的幫助!來自後臺工作者的文本框文本?
回答
我認爲你只是需要調用屬性(僞代碼):
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
你是什麼意思的「從背後」? –