2010-10-24 79 views
0

在.NET CF-表单中我有多个面板。我想要一个属性,应该总是知道面板是否在前面。拦截SetChildIndex的值更改

这可以使用GetChildIndex()方法完成吗?

如果是的话,我该如何拦截SetChildIndex()的更改?

在此先感谢

回答

0

对于大家谁是有意以备将来使用:

只需添加一个新的事件处理程序,每个小组的Paint事件,例如:

panel1.Paint += new PaintEventHandler(panel1_Paint); 
panel2.Paint += new PaintEventHandler(panel2_Paint); 

,并在每个事件处理程序只是调用一个方法来检索所有面板的状态,如下所示:

void panel2_Paint(object sender, PaintEventArgs e) 
     { 
      GetPanelStates(); 

     } 

     void panel1_Paint(object sender, PaintEventArgs e) 
     { 
      GetPanelStates(); 
     } 



     void GetPanelStates() 
     { 
      Panel2IsInFront = panel2.Parent.Controls.GetChildIndex(panel2) == 0; 
      Panel1IsInFront = panel1.Parent.Controls.GetChildIndex(panel1) == 0; 
     }