拦截SetChildIndex的值更改

时间:2010-10-24 09:12:58

标签: winforms compact-framework panel

在.NET CF格式中,我有多个面板。我希望有一个属性,应该始终告知面板是否在前面。

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

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

提前致谢

1 个答案:

答案 0 :(得分:0)

对于每个对将来使用感兴趣的人:

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

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

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

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;
        }