C# 显示面板的按钮

C# 显示面板的按钮,c#,visual-studio-2008,windows-mobile,panel,C#,Visual Studio 2008,Windows Mobile,Panel,当我试图在按下按钮时打开面板时,它不会显示。“在属性中可见”设置为false。我第一次使用此方法打开面板: pnlSettings.Location = new Point(0, 0); pnlSettings.Size = this.ClientSize; pnlSettings.Visible = true; pnlSettings.BringToFront(); 该代码在第一次使用时起作用。但是当我尝试在程序中使用相同的代码

当我试图在按下按钮时打开面板时,它不会显示。“在属性中可见”设置为false。我第一次使用此方法打开面板:

        pnlSettings.Location = new Point(0, 0);
        pnlSettings.Size = this.ClientSize;
        pnlSettings.Visible = true;
        pnlSettings.BringToFront();
该代码在第一次使用时起作用。但是当我尝试在程序中使用相同的代码时,它并不能完全工作

        private void btnSettings_Click(object sender, EventArgs e)
    {
        int valueTemp;

        valueTemp = _game.Settings.GetValue("MusicVolume", 2);
        if (valueTemp < 0) valueTemp = 0;
        if (valueTemp > 3) valueTemp = 3;
        trackMusic.Value = valueTemp;
        valueTemp = _game.Settings.GetValue("SoundFxVolume", 3);
        if (valueTemp < 0) valueTemp = 0;
        if (valueTemp > 3) valueTemp = 3;
        trackSoundFx.Value = valueTemp;

        pnlSettings.Location = new Point(0, 0);
        pnlSettings.Size = this.ClientSize;
        pnlSettings.Visible = true;
        pnlSettings.BringToFront();

        this.Menu = mnuTitleSettings;
    }
还是不走运


提前感谢您的帮助。

您是否有其他代码可以从其父控件的
集合中删除
pnlSettings
?比如:

this.Controls.Remove(pnlSettings);

只有将控件添加到父控件集合中,它才会可见

    pnlSettings.Location = new Point(0, 0);
    pnlSettings.Size = this.ClientSize;
    this.Controls.Add(pnlSettings);

再次删除面板时,不要忘记调用它的Dispose()方法。

否。删除面板时没有任何问题那么为什么在
btnSettings\u单击
中的相同代码会起作用?它也没有将面板添加到
控件中。我不知道。我的原始代码仍然有效,但我说它有效。Hans amendment使代码对第二个按钮起作用。@user662973:您可能已经在代码或设计器中的其他地方添加了面板。是的,很好地实现了。我在设计器中添加了面板。
this.Controls.Remove(pnlSettings);
    pnlSettings.Location = new Point(0, 0);
    pnlSettings.Size = this.ClientSize;
    this.Controls.Add(pnlSettings);