所以我正在开发一个程序作为我公司数据库的前端,我有一个用户控件,里面有菜单栏。我的想法是,我可以对菜单的按钮进行一次编码,并且通过菜单的所有表单都是相同的。菜单有两种类型:一种用于主窗体,另一种用于所有其他窗体。 MainMenuStrip
控件有this.findForm().hide()
而不是close()
和dispose()
行,所以编程。保持开放,这是唯一的区别。
问题在于:
MainMenuStrip
)效果很好。它导航到其他形式,退出应用程序......它应该做的一切。 KKRMenuStrip
)的菜单绝对没有任何效果。 KKRMenuStrip
切换MainMenuStrip
,并且,看,它运作得很好。KKRMenuStrip
,我必须在子菜单打开之前两次单击一个菜单项,几乎就像在它激活之前必须选择它一样。 MainMenuStrip
不确定要包含哪些代码,因为我不知道问题出在哪里,但这里是“退出”功能,以及每个控件的一个导航功能的示例。导航功能非常能说明所有导航功能的编码方式。
来自MainMenuStrip
:
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult dlg = MessageBox.Show("Are you sure you want to exit?", "Exit Application", MessageBoxButtons.YesNo);
if (dlg == DialogResult.Yes)
{
Application.Exit();
}
}
private void newCustomerToolStripMenuItem_Click(object sender, EventArgs e)
{
NewCustomer c = new NewCustomer();
c.Show();
this.TopLevelControl.Hide();
}
来自KKRMenuStrip
:
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
DialogResult dlg = MessageBox.Show("Are you sure you want to exit?", "Exit Application", MessageBoxButtons.YesNo);
if (dlg == DialogResult.Yes)
{
Application.Exit();
}
}
private void newCustomerToolStripMenuItem_Click(object sender, EventArgs e)
{
NewCustomer c = new NewCustomer();
c.Show();
Form tmp = this.findForm();
tmp.Close();
tmp.Dispose();
}
非常感谢任何帮助。