我创建了一个应用程序,其中有一个menustrip,其中有2个按钮,一个用于ADD,另一个用于UPDATE&两个控件都是单一形式,意味着一个按钮添加&更新是在一个单一的形式,每当我按下menustrip更新按钮中的添加按钮将被禁用,当我按下menustrip更新时,添加按钮将禁用。这该怎么做?我通过show方法执行此操作,但该表单使用show()打开多次。
private void addRecordsToolStripMenuItem_Click(object sender, EventArgs e)
{
Form1 f2 = new Form1();
f2.MdiParent = this;
f2.Show();
f2.button1.Enabled = true;
}
private void updateRecordsToolStripMenuItem_Click(object sender, EventArgs e)
{
Form1 f2 = new Form1();
f2.MdiParent = this;
f2.Show();
f2.button2.Enabled = true;
f2.button1.Enabled = false;
}
答案 0 :(得分:0)
在这种情况下,你只需要使用一个表格。尝试使用单例方法 -
http://hashfactor.wordpress.com/2009/03/31/c-winforms-create-a-single-instance-form/
答案 1 :(得分:0)
尝试使用.ShowDialog()
而不是.Show()
,并且在关闭之前不会点击任何其他表单。
答案 2 :(得分:0)
要做到这一点,你需要在Form
创建Form
之后,在那些方法之外有一个Form1 f2 = null;
private void addRecordsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (f2 == null)
{
f2 = new Form1();
f2.MdiParent = this;
f2.button1.Enabled = true;
}
f2.Show();
}
private void updateRecordsToolStripMenuItem_Click(object sender, EventArgs e)
{
if (f2 == null)
{
f2.MdiParent = this;
f2.button2.Enabled = true;
f2.button1.Enabled = false;
}
f2.Show();
}
的实例,如果没有创建并显示它(这是单身模式)。这是一个例子:
{{1}}
关于禁用菜单项的一个问题,您如何计划在禁用菜单项后重新启用它们?
答案 3 :(得分:0)
尝试通过使用其文本属性来检查表单是否已经打开..如果它被打开只关注该表单其他明智的表单通常
private void button1_Click(object sender, EventArgs e)
{
bool IsOpen = false;
foreach (Form f in Application.OpenForms)
{
if (f.Text == "Form1")
{
IsOpen = true;
f.Focus();
break;
}
}
if (IsOpen == false)
{
Form f1 = new Form1();
f1.Show();
}
}
尝试这个简单的人