我有三个窗体,窗体A、B、C,A是主窗体,B、C分别放在A的Panel上,B上有个TreeView,我想在程序运行时通过C访问B中的树形,进而对其进行操作,如何实现呀?我刚开始接触CS,这些很基础的东西都还不会呢,呵呵,请高手指点。

解决方案 »

  1.   

    Form1 ff=new Form2();
    ff.Show;
    Form1.Close不知道对不对~
      

  2.   

    这样不对。可能是我说的不明白。A是个主窗体,程序运行时,B在A上,是个左侧窗体,C在A上,是右侧窗体。在A.cs中有B和C的对象实例,我想在C.cs里获取当前运行的A或B的实例,应该怎么做呀?
      

  3.   

    既然B、C是放在A的Panel,为什么要用窗体?有控件直接忘Panel里放就可以啊…
      

  4.   

    把需要其他窗体访问的控件用public 定义就可以了
      

  5.   

    你说的可能是,B C 窗体启动时停靠在A窗体的Panel上,C访问B窗体的Treeview,直接实例化B, B b = new B()。b.对象就行啊。
      

  6.   

    对,是这样的,B和C停靠在A的Panel上。A窗体启动时就将B、C分别实例化了,我想在程序运行的时候可以在C中直接找到A或B的当前对象,再声明的话就是新对象了。
      

  7.   

    我把代码发一下吧:
    LeftForm uc;
            void MainForm_Load(object sender, System.EventArgs e)
            {
                VisioDrawingControlDockContent vd = new VisioDrawingControlDockContent();
                _VisioDrawingControl = vd.VisioDrawingControl;
                vd.CloseButtonVisible = false;
                vd.Show(this.panel1, DockState.DockTop);
                BottomForm bf = new BottomForm();
                bf.Show(this.panel1, DockState.DockBottom);            RightForm rf = new RightForm();
                rf.Show(this.panel1, DockState.DockRightAutoHide);
                uc = new LeftForm(true);
                uc.Show(this.panel1, DockState.DockLeft);
                this.panel1.DockWindows[DockState.DockTop].Dock = DockStyle.Fill;
                bf.AutoHidePortion = 150;
                rf.AutoHidePortion = 160;
                uc.AutoHidePortion = 160;
                this.panel1.DockLeftPortion = 160;
                this.panel1.DockBottomPortion = 150;
                this.panel1.DockRightPortion = 160;
                uc.TreeViewLeft.AfterSelect += new TreeViewEventHandler(TreeViewLeft_AfterSelect);
            }
    A=MainForm,B=LeftForm,C=VisioDrawingControl。
      

  8.   

    你可把Treeview声明成公共静态的,然后直接访问不就好了。如在B中声明:public static Treeview treeview;
    在C中这样访问:B.treeview
      

  9.   

    呵呵,竟然使用窗体的做左右分割,强人呀。
    为什么不使用UserControl。到时候,所以的都是属于A窗口的控件,就不会有访问的问题了。
    如果你要坚持的话,你可以把B和C定义为public static,再把tree改为public变量就行了。
    A.B.treeView1这样就好了。不要使用A的实例,就是用类名.B.treeView1访问。
      

  10.   

    谢谢大家,我已经把这个问题搞定了。我把B当做C的一个属性了,当然这种处理方式不大好。另外再向大家请教个问题:Visio的Drawing Control 控件在鼠标事件axDrawingControl1_MouseDownEvent里重新设置它的Src属性为什么无效呢?应该怎么处理?
      

  11.   

    您好,我想向你请教三个个问题,现在此谢谢您了,我是一名学生,想做一个学生管理系统,用的是visual studio 2010,
    第一,请问如何做设置管理员和学生的登陆权限,使两种角色的分别进入不同的窗体?
    第二,我已经建好了一个学生信息表,如何实现学生根据用户名也就是自己的名字 进入界面后可以看到自己的个人信息?
    第三,如何实现多表之间的查询,用SQL语句写出来,最好能举个例子,谢谢您了!