.net panel visibility = true不起作用

时间:2012-02-06 19:52:41

标签: .net winforms visual-studio-2010 panel

我正在使用面板设计多页窗体。

我正在显示登录表单并验证按钮点击,并希望隐藏登录面板并显示主面板。

但是,当我单击按钮时,登录面板会消失,但主面板不会出现。由于没有任何内容可以显示,因此窗体窗口会缩小到最小化/最大化/关闭按钮。

以下是按钮的代码:

       private void btn_login_Click(object sender, EventArgs e)
    {
        if (pwdBox.Text == optopwd)
        {
            MessageBox.Show("Good Morning!!");
            loginpanel.Visible = false;
            mainpanel.Visible = true;
        }
        else
        {
            MessageBox.Show("Incorrect password!");
        }
        pwdBox.Text = "";

    }

请让我知道我错过/误解了什么。谢谢!

编辑: 截图: 登录界面: http://img641.imageshack.us/img641/9310/loginscreenj.jpg

空窗口: http://img163.imageshack.us/img163/1376/emptyx.jpg

3 个答案:

答案 0 :(得分:22)

标准错误是您不小心将主面板放在登录面板中。因此,当您使loginpanel不可见时,主面板永远不会变得可见。这种意外在设计师中很常见,它不会让你把两块面板放在一起。您可以使用View +(其他Windows)+文档大纲修复它。拖动主面板并将其放在窗体上。您必须通过在“属性”窗口中对其进行编辑来修复“位置”属性,而不是使用鼠标移动面板。

完全不同的方法是使用TabControl。在设计器中很容易,您只需要在运行时隐藏选项卡。代码is here

或使用两个UserControl。

答案 1 :(得分:1)

看起来你的for会自动调整大小。表格上有2个属性负责自动尺寸:

AutoSize = True;
AutoSizeMode = GrowAndShrink;

如果您有上述设置,那么如果没有其他内容可供显示,您的表单将缩小到控制面板(按钮)。

如果有帮助,请告诉我。

<强>已更新

也...你的控件“pwdBox”属于主面板吗?

答案 2 :(得分:-1)

两个建议: 尝试将height属性设置为100%

mainpanel.Height = 100%

如果这不起作用,请确保页面未在回发时将mainpanel.visible设置为false进行初始化。