各位兄弟姐妹大家好:小弟我想问一个问题。
我在一个主窗体MainForm对象,创建一个新的窗体,然后这个新的窗体又创建了一个窗体。我想在最好一个窗体访问MainForm对象(不是MainForm类)。请问怎么访问。
知道的告知一下。

解决方案 »

  1.   

    吧main实例传给你的窗体就ok,然后通过main窗体内的public方法来操作父类窗体这只是一种方法,还有其他的方法,比如说事件订阅也可以做到,我现在就用这个,大体框架如下:定义一个中间类:
    public class Observe
    {
    public Observe()
    {

    } private string strText;
    public event EventHandler TextChange;
    public string StrText
    {
    get
    {
    return strText;
    }
    set
    {
    strText = value;
    if(TextChange != null)
    TextChange(this,EventArgs.Empty);
    }
    }          }main类中:private Observe o_Observe = new Observe();
    点击按钮打开窗口的按钮事件代码这样写
    private void Tc_btn_Click(object sender,EventArgs e)
    {
    Tcb_Ro obj = new Tcb_Ro();
    obj.observe = o_Observe ;
    this.o_Observe .TextChange += new EventHandler(Tcb_TextChange);
    obj.ShowDialog();
    }private void Tcb_TextChange(object sender,EventArgs e)
    {
                          //你想操作main窗体的代码写在这里
    }
    子类的按钮时间这样写,这里是操作的listview进行选择的
    private void SelectBtn_Click(object sender, System.EventArgs e)
    {
    if(TcList.SelectedItems .Count > 0)
    {
    o_Observer.TcbCode = TcList.SelectedItems[0].Text + "|" + TcList.SelectedItems[0].SubItems[1].Text;
    }
    this.Close();
    }只要observe类中的值一发生改变马上就处罚事件的发生
      

  2.   

    没有父对象的概念,只有父类的概念你说的这些对象,其实都一样,是平级的,把最开始的MainForm窗体放在变量里,哪儿都能访问