none
Vs 2010 中如何在子窗体中访问父窗体的控件 RRS feed

  • 问题

  • 由于每个窗体的框架都一样  所以定义了一个父窗体专门做框架 父窗体主要放置的是Tablayoutpanel和 panel

    但是子窗体继承后,给这些panel 和 Tablayoutpanel 中在添加控件就不允许了  并且显示为锁定状态 父窗体中每个控件都是public 

    请问有方法解决吗

    2014年12月3日 8:43

答案

全部回复

  • 呃,继承的结果是子类父类的对象各有一组控件,你确定这是你想要的?

    你可以用事件来做子窗体和父窗体之间的通讯。比如你在子窗体里面改了什么数据,之后自己触发一个自定义事件来通知关心这个事件的对象(可以包括但是不限于父窗体)。



    Visual C++ MVP

    2014年12月3日 23:42
    版主
  • 哎呀 不是 那个意思 我的所有子窗体的框架布局都是一样的  所以想抽出一个模板来  也就是父窗体  父窗体主要是用panel 和 Tablayoutpanel 搭建框架  但是继承以后 这些panel 和 Tablayoutpanel在子窗体是锁定的状态 无法在添加控件了  就是这个想法
    2014年12月4日 0:23
  • 设计器在继承类中生成操作复杂控件的代码时会出问题(代码丢失)所以锁起来了。

    你可以把每个panel里面的东西做成单独的user control,然后做一个可以随便替换panel的窗体。



    Visual C++ MVP


    2014年12月4日 0:37
    版主
  • 你好,你可以直接继承 form 
    2014年12月5日 3:12