自己学着写了一个控件,里面public了一个方法,显示一些东西,在控件的初始化过程中调用可以正常显示
         public calendar()//这是控件里调用
        {
            InitializeComponent();
            showheaderday();//这个就是显示的方法
        }
但是再调用这个控件的FORM中调用就不能显示,
        Controls.calendar calbespeak = new Controls.calendar();
        public modSboardbespeak()
        {
            InitializeComponent();
            calbespeak.showheaderday();
        }
请问这是问什么,初学,对很多东西都不懂,没搞明白这样可行不,请大家指教

解决方案 »

  1.   

    你把控件添加到Form中了没有?        Controls.calendar calbespeak = new Controls.calendar(); 
            public modSboardbespeak() 
            { 
                InitializeComponent(); 
                calbespeak.showheaderday(); 
            }这样只是声明了一个控件,并调用了其方法而已,这个控件是否实际添加到Form呈现上了呢
      

  2.   

    你的这个控件添加到了Form上了吗?
    可以在工具栏->右键->选择项->浏览,然后选择你写的控件的dll路径,添加了后直接拖到From窗体就行了还有一种就是你添加你写的这个控件的dll,然后添加控件的命空间.这样也可以访问的
      

  3.   

    我添加到FORM上了,工具栏里面都有我写的这个控件了。
      

  4.   

    但是再调用这个控件的FORM中调用就不能显示, 
            Controls.calendar calbespeak = new Controls.calendar(); 
            public modSboardbespeak() 
            { 
                InitializeComponent(); 
                calbespeak.showheaderday(); 
            } 
        public calendar()//这是控件里调用 
            { 
                InitializeComponent(); 
                showheaderday();//这个就是显示的方法 
            } 那你这个是什么意思呢?如果你在窗体构造函数里面都可以正常显示的话说明控件方面就没问题了
    还有你这两个构造函数是什么意思?calendar是窗体的类名吗?那modSboardbespeak呢?
      

  5.   

    calendar是控件的类名,modSboardbespeak是窗体的类名,就是把显示函数放到控件的构造函数中,他就可以正常显示,放到窗体的构造函数中或者在其他地方调用就不能显示。
    PS,csdn今天是不是有问题,一刷新我网页就死了,上其他网站都好着呢,呵呵!
      

  6.   

     public calendar()//这是控件里调用 
            { 
                InitializeComponent(); 
                showheaderday();           
            }  Controls.calendar calbespeak = new Controls.calendar(); 
            public modSboardbespeak() 
            { 
                InitializeComponent(); 
                calbespeak.showheaderday(); 
            } 
    说明下楼主的逻辑问题!
    首先编译modSboardbespeak类
    到这行Controls.calendar calbespeak = new Controls.calendar();
    跳转到构造函数calendar类。进行构造calendar,构造时执行showheaderday()方法。
    然后编译到构造函数modSboardbespeak()又进行空间对象showheaderday方法编译?所以上面标红的那句话多余!
      

  7.   

    不是,我的意思是放在calendar中就可以,放在modsboardbespeak中就不行,两个不是同时存在的。难道我真的得去学学语文了,表达能力这么差。。
      

  8.   

    1、确定你的控件被添加到了窗体控件集合中(如果是从ToolBox中拖拽过来的可以忽略这一步)
    2、贴出来你的showheaderday方法,问题也许在这个方法里面
      

  9.   

    可否把showheaderday函数贴出来,问题可能在你这个函数里面
      

  10.   

    谢谢大家,问题找到了,呵呵,调用的时候我应该用控件名然后加.XX,不能重新new一个,那个是空的,呵呵!