我现在的页面像这样_______________________
|panel1 |
| Texbox |
| MonthCalendar|
|_____________________|
|panel2 |
| |
| |
|_____________________|现在点击TextBox,就把MonthCalendar显示出来,用了BringToFront()方法后,还是是被下面的panel2挡住了。但是却不能将panel1调用BringToFront(),因为这样一来,panel1上面的其他控件就被挡住了。
现在我的想法是将MonthCalendar加载到最外层的Form上,但是这样一来,坐标又不好取了,本来MonthCalendar的坐标应该是在Texbox的坐标基础上做适当的修改,但是如果加载到外层的Form上后,就不能用Texbox.Location所取得的坐标了。
就这两个问题,该如何解决呢?
|panel1 |
| Texbox |
| MonthCalendar|
|_____________________|
|panel2 |
| |
| |
|_____________________|现在点击TextBox,就把MonthCalendar显示出来,用了BringToFront()方法后,还是是被下面的panel2挡住了。但是却不能将panel1调用BringToFront(),因为这样一来,panel1上面的其他控件就被挡住了。
现在我的想法是将MonthCalendar加载到最外层的Form上,但是这样一来,坐标又不好取了,本来MonthCalendar的坐标应该是在Texbox的坐标基础上做适当的修改,但是如果加载到外层的Form上后,就不能用Texbox.Location所取得的坐标了。
就这两个问题,该如何解决呢?
if (Ptemp == null)
{
TempControl = new Control();
TempControl = this.Parent;
Ptemp = new Panel(); mcPicker = new MonthCalendar(); mcPicker.Dock=DockStyle.Fill;
Ptemp.Controls.Add(mcPicker);
TempControl.Controls.Add(Ptemp);
rectPicker = this.Location; }
Ptemp.BringToFront();
Ptemp.Top = (rectPicker.Y) + this.Height-1;
Ptemp.Left = (rectPicker.X);
Ptemp.Width = 269;
Ptemp.Height = 145;
Ptemp.Show();
mcPicker.DateSelected += new DateRangeEventHandler(mcPicker_DateSelected);
mcPicker.MouseLeave += new EventHandler(mcPicker_MouseLeave);
mcPicker.DateChanged += new DateRangeEventHandler(mcPicker_DateChanged);
这样的代码试过了
效果就是这个样子
还是有被下面的控件给挡住了