这可能是一个简单的解决方案,但我找不到任何相关的东西。我有三种形式:
主菜单和表格1都可以启动表格2.我想要做的是:
然而
我知道某处有一个简单的解决方案,但我能找到的是如何打开表单,启用/禁用它的父控件,而不是打开子窗体并在Show()之前禁用控件或者调用任何东西。
答案 0 :(得分:1)
您可以像下面这样向Form2类添加一个属性:
public bool HideSomeControls
{
get;
set;
}
然后,在Form1.cs中显示Form2之前,设置该属性:
form2instance.HideSomeControls = true;
form2instance.Show(); // or ShowDialog, depending...
然后,向Form2添加一个Load事件处理程序,如下所示:
private void Form2_Load(object sender, EventArgs e)
{
if (HideSomeControls)
{
someControl.Visible = false;
someOtherControl.Visible = false;
}
}
请注意,如果MainMenu
和Form1
共享Form2
的单个实例,则您必须再次将HideSomeControls
设置为false
在显示MainMenu
实例之前Form2
。
答案 1 :(得分:0)
您可以在表单中直接启用或禁用控件:
public bool FullControl {
get {
return btnNew.Enabled;
}
set {
btnNew.Enabled = value;
btnDelete.Enabled = value;
}
}
你也可以完全省略getter(是的,你可以在C#中使用只写属性):
public bool FullControl {
set {
btnNew.Enabled = value;
btnDelete.Enabled = value;
}
}
像这样调用表格
var frm = new Form2();
frm.FullControl = true; // or false
frm.Show();