panel.Hide()不使用布尔值

时间:2015-04-13 18:25:47

标签: c# .net

我创建了一个包含多个面板的表单,根据按下各种“下一步”或“上一步”按钮显示或隐藏。这适用于除panelDuelDegree和panelDoubleMajor之外的所有面板。下一个按钮正确隐藏面板并显示所需的面板。但是,如果按下任一面板上的上一个按钮,panelPage1会显示但DoubleMajor或DuelDegree面板不会隐藏。这两个小组都不是panelPage1的孩子。

当我按“上一步”按钮时,如何隐藏panelDuelDegree和panelDoubleMajor?

public partial class CreateNewGradAppForm : Form
{
    //FOR TESTING PURPOSES
    bool duelDegree = true;
    bool doubleMajor = false;

    public CreateNewGradAppForm()
    {
        InitializeComponent();
    }

    private void CreateNewGradAppForm_Load(object sender, EventArgs e)
    {

    }

    private void NextButton_Click(object sender, EventArgs e)
    {
        if (duelDegree)
        {
            panelPage1.Hide();
            panelDuelDegree.Show();
            panelPage1.Enabled = false;
            panelDuelDegree.Enabled = true;
        }
        else if (doubleMajor)
        {
            panelPage1.Hide();
            panelDoubleMajor.Show();
            panelPage1.Enabled = false;
            panelDoubleMajor.Enabled = true;
        }
        else
        {
            panelPage1.Hide();
            panelPage2.Show();
            panelPage1.Enabled = false;
            panelPage2.Enabled = true;
        }

    }
    private void DuelDegreePreviousButton_Click(object sender, EventArgs e)
    {
        panelDuelDegree.Hide();
        panelPage1.Show();
        panelDuelDegree.Enabled = false;
        panelPage1.Enabled = true;
    }

    private void DoubleMajorPreviousButton_Click(object sender, EventArgs e)
    {
        panelDoubleMajor.Hide();
        panelPage1.Show();
        panelDoubleMajor.Enabled = false;
        panelPage1.Enabled = true;
    }
    private void DuelDegreeNextButton_Click(object sender, EventArgs e)
    {
        panelDuelDegree.Hide();
        panelPage2.Show();
        panelDuelDegree.Enabled = false;
        panelPage2.Enabled = true;
    }

    private void DoubleMajorNextButton_Click(object sender, EventArgs e)
    {
        panelDoubleMajor.Hide();
        panelPage2.Show();
        panelDoubleMajor.Enabled = false;
        panelPage2.Enabled = true;
    }

2 个答案:

答案 0 :(得分:0)

为什么你没有一个列表来存储所有这些面板,只是根据当前显示哪个面板的已知索引遍历列表然后根据哪个按钮是+1或-1索引点击?

答案 1 :(得分:0)

尝试panelPage1.visible = truepanelPage1.visible = false。这应该显示和隐藏面板。