禁用按钮,具体取决于从何处打开表单
Disable buttons, depending on where Form is opened from
可能有一个简单的解决方案,但我在 this.I 上找不到任何东西有三种形式:
- 主菜单
- 表格 1
- 表格 2
Main Menu和Form 1都可以启动Form 2,我想做的是:
- 如果从 Form 1 启动 Form 2,某些按钮将被禁用。
但是
- 如果从主菜单启动 Form 2,则一切都已启用。
我知道某处有一个简单的解决方案,但我能找到的只是如何打开一个表单,enable/disable它是父控件,而不是打开子表单并在 Show() 之前禁用控件或其他任何东西打电话。
您可以像这样向 Form2 class 添加 属性:
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
实例之前。
您可以直接在 属性 中启用或禁用控件,格式如下:
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();
可能有一个简单的解决方案,但我在 this.I 上找不到任何东西有三种形式:
- 主菜单
- 表格 1
- 表格 2
Main Menu和Form 1都可以启动Form 2,我想做的是:
- 如果从 Form 1 启动 Form 2,某些按钮将被禁用。
但是
- 如果从主菜单启动 Form 2,则一切都已启用。
我知道某处有一个简单的解决方案,但我能找到的只是如何打开一个表单,enable/disable它是父控件,而不是打开子表单并在 Show() 之前禁用控件或其他任何东西打电话。
您可以像这样向 Form2 class 添加 属性:
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
实例之前。
您可以直接在 属性 中启用或禁用控件,格式如下:
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();