前言
在设计一个界面时,为了节省空间,我将控件分类后分别放到了三个重合放置的Panel中,并添加三个了按钮作为调出对应Panel的媒介,如图1-1所示。
图1-1 简化效果图
按钮的调用代码如下:
private void btnOne_Click(object sender, EventArgs e)
{panel1.BringToFront();
}private void btnTwo_Click(object sender, EventArgs e)
{panel2.BringToFront();
}private void btnThree_Click(object sender, EventArgs e)
{panel3.BringToFront();
}
问题
当我运行起来去点击按钮的时候,却没有出现我要的效果,只有两个按钮有用或者只有一个按钮有用,让我很费解。
原因
从网上查找相应问题时,一个回答者提到:VS里面有一个调出窗体控件层次的功能(文档大纲),看看是不是将其中一个Panel控件放到另一个Panel控件的下一层了,这样会导致上一层的控件看不到。于是,看了看文档大纲,确实是层次错乱的问题。如图1-2所示:
图1-2 Form1文档大纲
解决方案
那么怎么让众神归位呢?我在调试了几次之后,发现了一个规律:每次将一个Panel拖到另一Panel上重合放置时,如果是通过左右移动去重合的话,将不会有这个问题,而通过上下移动去重合的方式则出现这个问题的概率较大。这算是几次实验后的经验,可能不是最好的解决办法,所以此方法仅供参考,如有更好的办法,还望各位不吝赐教。
备注:文档大纲在:视图–其他窗口–文档大纲。(或者用快捷键ctrl+alt+t,VS2013)