在FORM中调用其它类,如何在调用的类中修改FORM的TEXTBOX值?

解决方案 »

  1.   

    在调用的类中能获得FORM的TEXTBOX的Id么?
      

  2.   


    设计思路有问题,如果把form传走那业务逻辑和UI都在哪里?建议楼主用事件解决.
      

  3.   

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void button1_Click(object sender, EventArgs e)
            {
                ThreadClientProc p = new ThreadClientProc();
                p.tempSocket = client;            Thread clientService = new Thread(new ThreadStart(p.ServiceClient));        }
        }    public class ThreadClientProc
        {
            public void ServiceClient()
            {
                //在这里想更改Form1中的控件TextBox1.Text的值
            }
        }
      

  4.   

    传个THIS进去不行吗?
    没试过,不好说.
      

  5.   

    方法有很多
    方法1:  class TestClass
        {
            public static void ModifyValue(Form1 form)
            {
                form.textBox1.Text = "hello";
            }
        }调用方法在Form1中  TestClass.ModifyValue(this);
    方法2:  class TestClass
        {
            public static void ModifyValue(System.Windows.Forms.TextBox txt)
            {
                txt.Text = "hello";
            }
        }
    调用方法在Form1中  TestClass.ModifyValue(this.TextBox1);
    方法3:
    在本窗体中创建一个pulic方法,在此方法中修改TextBox的值
    在别的类中,新建此窗体,可以访问到建的这个pulic方法,将要修改的值传过来即可。
      

  6.   

    把 textbox可见属性设置为public, 把窗体对象传给那个类。这是办法之一,但破坏了封装。  既然想实现,凑合着用吧。
      

  7.   

    第一种方法需要把Form1中的textBox1的Modifiers属性设置为public
      

  8.   

    控件操作使用invoke
    或设置属性为控件,修改属性
    传递Form对象到类中