winform中的日历控件如何与TextBox结合使用,当我在TextBox获取焦点时弹出日历控件,要把在日历控件范围内的其他控件遮挡起来...当另一个TextBox获取焦点时,日历控件要显示在另一个TextBox下方

解决方案 »

  1.   

    在运行程序前将日历控件的属性visible设置为false
    首先创建一个方法:tb_Enter
     private void tb_Enter(object sender, EventArgs e)
            {
                      TextBox tb = (TextBox)sender;
                     monthCalendar1.Visible = true;
                    monthCalendar1.BringToFront(); //显示在控件的最前端
                    monthCalendar1.Location = new Point(tb.Location.X, tb.Location.Y + tb.Height);
            }
    然后将所需TextBox下方显示日历控件的每个textBoxt事件中的Enter事件与tb_Enter方法相相连。
    这样当每个textBox获得焦点时就显示日历控件。
    注:TextBox的Enter事件--  在控件成为该窗体的活动控件时发生。
    所以应将事件写到该Enter事件下,但设计到每个TextBox控件都有此功能,采用此简单方法更容易实现。
    你试试看看,是否符合你的要求?
      

  2.   

    不过我觉得还是直接用日历空间好啊,不过好像有2个日历空间,MonthCalendar & DateTimePicker前面那个好像不知名好用,所以还是用用后者吧!