堆叠时切换面板可见性不起作用

时间:2012-01-08 20:46:27

标签: vb.net visibility

我有一个有两个视图的表单。这些视图由表单顶部的单选按钮控制。

以下是该计划:

http://dl.dropbox.com/u/41629841/DataCalculator/DataCalc1.PNG

注意如何选择数字转换器的单选按钮。

以下是选择“文本转换器”单选按钮时的样子:

http://dl.dropbox.com/u/41629841/DataCalculator/DataCalc2.PNG

这不对。我将其设置为隐藏包含数字转换器的面板,并在单击该转换器时显示包含文本转换器的面板。它隐藏了数字转换器,但没有显示文本转换器。

以下是文本转换器面板的图片:

http://dl.dropbox.com/u/41629841/DataCalculator/DataCalc4.PNG

以下是相关代码:

Private Sub frmCalculator_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
    rdoNumberConverter.Checked = True
End Sub

Private Sub rdoTextConverter_Click(sender As Object, e As System.EventArgs) Handles rdoTextConverter.Click
    pnlTextConverter.Visible = True
    pnlNumberConverter.Visible = False
End Sub

Private Sub rdoNumberConverter_Click(sender As Object, e As System.EventArgs) Handles rdoNumberConverter.Click
    pnlNumberConverter.Visible = True
    pnlTextConverter.Visible = False
End Sub

一切似乎都是正确的,我无法弄清楚文本转换器为什么不显示。我已经确定它与两个面板都在彼此之上的事实有关,因为当我将它们分开时,可见性切换工作完美。

以下是支持图片:

http://dl.dropbox.com/u/41629841/DataCalculator/DataCalc5.PNG http://dl.dropbox.com/u/41629841/DataCalculator/DataCalc6.PNG

那么当它们相互叠加时,我该如何使它工作?

我尝试使用BringToFront()和SendToBack()来确保可见面板位于前面,但它并没有什么区别。

1 个答案:

答案 0 :(得分:4)

确保TextConverter面板不在NumberConverter面板的“内部”。

从设计师处将它们移动到不同的位置,以便它们完全不重叠。

然后在代码中将它们移动到位:

textConverterPanel.Location = numConvertPanel.Location

您可见的,不可见的切换应该可以正常工作。