2010-10-24 81 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; 
     }