C# Switching Through Panels by Button Click

214 Views Asked by At

I am having Trouble switching through panels that is already inside the panels. I'm trying to make a Windows form with Switchable tabs, and i want the panels to switch depending on what buttons the user clicks. I tried to code it like this

private void Dashboard_Click(object sender, EventArgs e)
{
    pnl_dashboard.Visible = true;
    pnl_purchase_sales.Visible = false;
    pnl_order_stocks.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_stocks.Visible = false;
    pnl_alert_logs.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void Purchase_sales_Click(object sender, EventArgs e)
{
    pnl_purchase_sales.Visible = true;
    pnl_purchase_sales.BringToFront();
    pnl_order_stocks.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_stocks.Visible = false;
    pnl_alert_logs.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void stocks_Click(object sender, EventArgs e)
{
    pnl_stocks.Visible = true;
    pnl_stocks.BringToFront();
    pnl_purchase_sales.Visible = false;
    pnl_order_stocks.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_alert_logs.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void order_stocks_Click(object sender, EventArgs e)
{
    pnl_order_stocks.Visible = true;
    pnl_order_stocks.BringToFront();
    pnl_purchase_sales.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_stocks.Visible = false;
    pnl_alert_logs.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void inventory_forecasting_Click(object sender, EventArgs e)
{
    pnl_inventory_forecasting.Visible = true;
    pnl_inventory_forecasting.BringToFront();
    pnl_purchase_sales.Visible = false;
    pnl_order_stocks.Visible = false;
    pnl_stocks.Visible = false;
    pnl_alert_logs.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void alert_logs_Click(object sender, EventArgs e)
{
    pnl_alert_logs.Visible = true;
    pnl_alert_logs.BringToFront();
    pnl_purchase_sales.Visible = false;
    pnl_order_stocks.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_stocks.Visible = false;
    pnl_accounting_tools.Visible = false;
}

private void accounting_tools_Click(object sender, EventArgs e)
{
    pnl_accounting_tools.Visible = true;
    pnl_accounting_tools.BringToFront();
    pnl_purchase_sales.Visible = false;
    pnl_order_stocks.Visible = false;
    pnl_inventory_forecasting.Visible = false;
    pnl_stocks.Visible = false;
    pnl_alert_logs.Visible = false;
}

It works when you start from the main panel going down but it wont work when you just randomly click a panel. Here's my Form

enter image description here

1

There are 1 best solutions below

2
Stanislas On

It's hard to tell without seeing more code, but could it be because pnl_dashboard.Visible is never set to false?