public partial class Main : Form
{
    public Main()
    {
        InitializeComponent();
    }    private void button1_Click(object sender, EventArgs e)
    {
        Thread tdTmp = new Thread(new ThreadStart(new Hebf(ref textBox1).test));
        tdTmp.Start();
        tdTmp.Join();
    }
}
class Hebf
{
    TextBox textBox_Main;
    public Hebf(ref TextBox textBox_MainTmp)
    {
        this.textBox_Main = textBox_MainTmp;
    }
    public void test()
    {
        textBox_Main.Text += "asad";//这样出错
    }
}
不同的class里怎么操作?

解决方案 »

  1.   

    http://msdn2.microsoft.com/zh-cn/library/757y83z4(VS.80).aspx
      

  2.   

    change
    Thread tdTmp = new Thread(new ThreadStart(new Hebf(ref textBox1).test));
    to
    Hebf hebf = new Hebf(ref textBox1);
    Thread tdTmp = new Thread(new ThreadStart(hebf.test));
      

  3.   

    //这样测试看看private void button1_Click(object sender, EventArgs e)
    {
        Thread tdTmp = new Thread(new ThreadStart(new Hebf(textBox1).test));
        tdTmp.Start();
        //tdTmp.Join();
    }class Hebf 
    {
        TextBox textBox_Main;
        public Hebf(TextBox textBox_MainTmp)
        {
            textBox_Main = textBox_MainTmp;
        }    public void test()
        {
            textBox_Main.Invoke(new EventHandler(DoInvoke));
        }
        private void DoInvoke(object sender, EventArgs e)
        {
            textBox_Main.Text += "asad";
        }
    }
      

  4.   

    Thread tdTmp = new Thread(new ThreadStart(new Hebf(ref textBox1).test));
      

  5.   

    根本不是什么不同CLASS操作的问题吧
    你的Hebf的实例化时调用的textBox1在什么地方申明的吗!!
    不知道你想实现什么效果,是不是在进程里面修改textBox1的值吗?
    如果是这样,你需要使用委托!!
      

  6.   

    把class Hebf写入class Main里就行了呀。