在我的一个项目中有好几个窗体,如frmMain窗体,frmBase窗体,frmClass窗体等,其中我想frmClass从frmBase中继承,可是在继承选择器的组件名称中却只有frmMain,没有frmBase,而且在“浏览”中也没找到frmBase。
小弟初学c#,请各位大侠帮忙,谢谢!

解决方案 »

  1.   


    class NewFrom:frmBase
    {
    }
      

  2.   

    考虑下子窗体使用单件模式,类似于:public partial class Form1 : Form
        {
            private void button1_Click(object sender, EventArgs e)
            {
                Form2.ShowChildForm();
            }
        }
    public partial class Form2 : Form
        {
            private static Form2 formInstance;        public static Form2 Instance 
            {
                get 
                {
                    if(formInstance == null)
                    {
                        formInstance = new Form2();
                    }
                    return formInstance;
                }
              
            }        public static void ShowChildForm()
            {
                if(!Instance.Visible)
                {
                    Instance.Show();
                }
            }
        }
      

  3.   

    class NewFrom:frmBase 就可以了
      

  4.   

    在我的印象中,如果frmClass从frmBase中继承,那么frmClass在完成继续时应该具有和frmBase窗体一模一样的界面,这才是我想要的,可是我没有看见,也不知道我对窗体继承的理解是否有误。
      

  5.   

    可以的
    1.堆好frmBase
    2.然后生成通过frmBase
    3.解决方案资源管理器你的项目右键选“添加windows窗体"
    4.在“添加windows窗体"里选“继承的窗体"
    5.在跳出的窗口里继续选你要继承的窗体frmBase
    6.完成后就会出来一个新的窗体而且是继承自frmBase,而且那些继承自frmBase的控件都是锁定的
      

  6.   

    此外,当然你直接在代码里把从Form继承直接改成frmBase也可以,但你需要关掉这个新form的设计界面,然后重新打开,它会自动更新加载