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