C# winform两个子窗体之间如何传递变量和调用方法

请教两个问题~C# winform
1,两个子窗体,窗体1的某个字符串,要赋值给窗体2的一个textbox控件作为内容显示,要怎么实现?
2,同样是两个子窗体,窗体2中写的方法,怎么才能被窗体1开的线程调用?

1.你的两个子窗体之间有互相打开的关系吗
如果1要打开2,那么在窗体2里可以定义属性,然后1在new2的时候(show之前)给属性赋值,2里load中取属性的值赋值给textbox
如果没有互相打开的关系,那你到底想什么时机去传,是只传一次还是不断的传,你得先想好了,才知道对应的办法
2.2中的方法不应该暴露给1调用,窗体不是类库,你应该专门写个类来放公共函数,不要随便把函数放到窗体里去当类库用


窗体1定义一个变量,
 private string textName = "";
        public string TextName 
        {
            set { textName = value; }
            get { return textName ; }
        }
窗体2打开调用的时候
创建窗体1
form1 frm =new form1 ();
窗体2.值=frm.textName ;