现在有两个类FileApp和Smail,其中Smail是嵌套在FileApp当中的子类,我在FileApp类的界面上拖入了一个textbox2控件,在Smail中想使用textbox2这个控件的Text内容,请问怎么高手们如何实现?谢谢!!!

解决方案 »

  1.   

    FileApp中发布一个属性去控制textbox,子类通过FileApp的实例去操作属性
    或者textbox的modifers属性设置为public,这样可以通过FileApp的实例直接访问,xxx.textbox2.text
      

  2.   

    FileApp是public partial class,子类SMail是public class,我的做法是在SMail里定义了一个FileApp app = new FileApp();然后执行if(app.checkBox4.Checked == true)了,但是每次执行的结果完全取决于在一开始定义控件时checked的属性,与我后面是否选中checkBox4无关,求高手解答!
      

  3.   

    属性传值public class SMail
    {
       ……
       private List<Control> _ControlList = new List<Control>;
       public List<Control> ControlList 
       {
          get{return _ControlList;}
          set{_ControlList =value;}
       }
    }
    public partial class FileApp
    {
       ……
       SMail _smail = new SMail();
       private void checkBox1_CheckedChanged(object sender, EventArgs e)
       {
           if((checkBox1.Checked)&&(!_smail.ControlList.Contains(checkBox1)))
             _smail.ControlList.Add(checkBox1);
           else
             _smail.ControlList.Remove(checkBox1);
       }
    }
      

  4.   

    我在SMail里定义FileApp app,然后在SMail里调用if((checkBox1.Checked)&&(!_smail.ControlList.Contains(checkBox1)))
             _smail.ControlList.Add(checkBox1);
           else
             _smail.ControlList.Remove(checkBox1);语句不行吗?跪求解释~
      

  5.   


    关键问题是你怎么定义的?
    FileApp app =new FileApp();//这样定义的?那不管用就对了
    SMail中:
    private FileApp _MainForm=null;
    public FileAppMainForm
    {
      get{return _MainForm;}
      set{_MainForm=value;}
    }
    FileApp 中:
    SMail smail = new SMail();
    smail.MainForm=this;
    smail.Show();