logBox
内没有显示任何内容,只是空白
namespace Clipboard_Logger
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
backgroundWorker1.RunWorkerAsync();
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
logBox.SelectionStart = logBox.TextLength;
logBox.ScrollToCaret();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
while (true)
{
if (Clipboard.ContainsText(TextDataFormat.Text))
logBox.Text = logBox.Text + Clipboard.GetText(TextDataFormat.Text) + "\r\n";
}
}
}
}
答案 0 :(得分:1)
您正在使用后台线程(BackGroundWorker.DoWork
)访问UI线程上的控件。 只能从UI线程访问控件。
尝试添加一个BackGroundWorker.ProgressChanged
事件并从中访问您的控件。 ProgressChanged
从UI线程运行。
编辑:
不,那不是我的意思,您正在创建一个新的背景工作人员,您应该使用现有的背景工作人员,如下所示:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
backgroundWorker1.WorkerReportsProgress = true;
backgroundWorker1.ReportProgress(1);
}
此外,您需要将文本复制到剪贴板。