В настоящее время у меня есть одна форма и несколько пользовательских элементов управления, у меня установлена панель из основной панели Form1
, поэтому при каждом нажатии кнопки один из пользовательских элементов управления будет отображаться на главной панели.
Моя проблема в том, что один из элементов управления (InfoSetting
) имеет некоторые другие новые кнопки, и когда я нажимаю на них, я бы хотел, чтобы mainPanel показывал новый пользовательский элемент управления. Тем не менее, сейчас все остальные кнопки из Form1 работают нормально, но когда я нажимаю кнопку InfoSetting
, кажется, ничего не появляется.
вот мой код от Form1
public partial class Form1 : MetroFramework.Forms.MetroForm
{
InfoSettings infoSetting;
CashSales cashSales;
PriceSetting priceSetting;
public Form1()
{
InitializeComponent();
infoSetting = new InfoSettings();
cashSales = new CashSales();
priceSetting = new PriceSetting();
}
protected void ButtonClicked(object sender, EventArgs e)
{
buttonHandler(sender);
}
public void buttonHandler(object sender)
{
Button button = sender as Button;
mainPanel.Controls.Clear();
if (button != null)
{
switch (button.Name)
{
case "HomeBtn":
infoSetting.Dock = DockStyle.Fill;
mainPanel.Controls.Add(infoSetting);
break;
case "cashSalesBtn":
cashSales.Dock = DockStyle.Fill;
mainPanel.Controls.Add(cashSales);
break;
case "settingBtn":
infoSetting.Dock = DockStyle.Fill;
mainPanel.Controls.Add(infoSetting);
break;
case "priceSettingBtn":
cashSales.Dock = DockStyle.Fill;
mainPanel.Controls.Add(cashSales);
break;
default:
mainPanel.Controls.Clear();
break;
}
}
}
и вот код из InfoSetting
пользовательского элемента управления
public partial class InfoSettings : UserControl
{
public InfoSettings()
{
InitializeComponent();
}
private void priceSettingBtn_Click(object sender, EventArgs e)
{
Form1 form1 = new Form1();
form1.buttonHandler(sender);
}
}