我想做这样一个东西,点一个按钮可以弹出MonthCalendar,再点一下就可以关闭他,我不想用.visible,我想直接动态的添加、删除控件,该怎么弄呀~~~谢谢~~~

解决方案 »

  1.   

    要显示的地方放一个容器控件,如Panel,点击的时候判断容器控件里是否有控件,没有就MonthCalendar mc = new MonthCalendar;有就Clear
      

  2.   

    这样的话我还不如用visible呢=。=我不想在视图设计器里边看到这些捣乱的东西
      

  3.   

    一楼说的就是不在设计器里,你在代码中new一个MonthCalendar对象去创建该控件并添加到窗体上
      

  4.   

    我还是完整的说一下吧,我想做一个小记事本,然后在toolstrip上边有一个日历小按钮,点这个按钮可以在当前窗口出现一个小日历,写下我的代码吧
    前边定义了一个int monthcalendar_live=0,
            private void calendar_toolStripButton_Click(object sender, EventArgs e)
            {
                MonthCalendar monthCalendar = new MonthCalendar();
                Point m_location = new Point(toolStrip1.Location.X + 50, toolStrip1.Location.Y + 50);
                monthCalendar.Location = m_location;
                if (monthCalendar_live == 0)
                {
                    Controls.Add(monthCalendar);
                    monthCalendar.BringToFront();
                    monthCalendar_live = 1;
                }
                else
                {
                    Controls.Remove(monthCalendar);
                    monthCalendar_live = 0;            }
            }我这个代码只能实现添加不能删除,我知道是因为我每次点击按钮都会添加一个控件实例,monthCalendar_live这个变量是确实能够变的,我现在就没有思路怎么做了
      

  5.   

    =。=我真是太笨了,我添加了一个看不见的panel,然后我添加的控件也是看不见的这个怎么搞
      

  6.   

    Panel你不需要改Visible,一定要设置为true,不然当然看不见了,反正Panel边框什么的都看不见,添加后如果要改你MonthCalendar 控件的未知可以设置monthCalendar.Location = new Point(68, 53);
      

  7.   

    我不能做一个那样的panel,因为我的窗口下边整个都是一个richtextbox,如果我把panel放在底层,那我的calandar又看不到了=。=我还是太笨了
      

  8.   

    我这个toolstrip是放在toolstripcontainer里边的,可以更换位置=。=
      

  9.   

    Form1 form = new Form1();
                form.StartPosition = FormStartPosition.Manual;
                Point pt = MousePosition;//获取鼠标的屏幕坐标
                form.Left = pt.X;
                form.Top = pt.Y;
                newForm.ShowDialog();//这个form就是你要弹出来的框
      

  10.   

    你显示的时候 panel 的visible为true,不显示的时候false不就行了?
      

  11.   


    MonthCalendar monthCalendar = new MonthCalendar();//放到外面不就可以删除了吗
    private void calendar_toolStripButton_Click(object sender, EventArgs e)
            {
                //MonthCalendar monthCalendar = new MonthCalendar();
                Point m_location = new Point(toolStrip1.Location.X + 50, toolStrip1.Location.Y + 50);
                monthCalendar.Location = m_location;
                if (monthCalendar_live == 0)
                {
                    Controls.Add(monthCalendar);
                    monthCalendar.BringToFront();
                    monthCalendar_live = 1;
                }
                else
                {
                    Controls.Remove(monthCalendar);
                    monthCalendar_live = 0;
     
                }
            }