我在Form1
上有一个按钮默认启动。我有一个ConfigureForm
,我有一个菜单条,可以选择启用Form1
中的按钮。
所以我的代码是:
private void Portal2HammerButtonEnable_Click(object sender, EventArgs e)
{
Form1 frm1 = new Form1();
frm1.Portal2HammerButton.Enabled = true;
}
但当我关闭ConfigureForm
并查看按钮时,它仍处于停用状态。
答案 0 :(得分:2)
您只需点击此按钮即可创建新表单。您想要的是对Form1的实际实例的有效引用。
您有一些选择:
System.Windows.Forms
命名空间,了解是否已有一系列对象,您可以通过这些对象迭代查找主要表单。我建议选项2或5。
答案 1 :(得分:2)
那是因为您创建了一个新的Form1并在该表单上启用了该按钮。相反,您必须传递实际打开的表单实例。
出于设计目的,您可能希望在这两种形式之间使用控制器类。这将有助于您简化在两个表单之间传递数据或操作的复杂性,并使您能够更好地升级应用程序..
当您打开ConfigureForm
时,您必须执行以下操作(最简单的形式,但不推荐。)
...
{
ConfigureForm frmConfigure = new ConfigureForm(this);
}
然后在ConfigureForm
:
public partial class ConfigureForm : Form
{
private From1 mainForm = null;
public ConfigureForm()
{
InitializeComponent();
}
public ConfigureForm(Form callingForm):this()
{
mainForm = callingForm as Form1;
}
private void Portal2HammerButtonEnable_Click(object sender, EventArgs e)
{
mainForm.Portal2HammerButton.Enabled = true;
}
}