1

我在我的 MDIparent1 中得到了以下方法

public void Disablebutton()
{
    toolStripButton1.Enabled = false;
}

在我的 LoginForm OKButton 点击

MDIParent1 f1 = new MDIParent1();
f1.Disablebutton();
this.Close();

LoginForm 是 MDIparent1 的 Modal。

问题是 Disablebutton() 在 LoginForm 中不起作用

4

3 回答 3

2

您正在创建一个新实例,MDIParent1而不是使用打开的实际实例LoginForm。您可以将父级传递给LoginForm构造函数。

private MDIParent1 _parentForm = null;
public LoginForm(MDIParent1 parentForm)
{
   _parentForm = parentForm;
}

//then in whichever event you're using
_parentForm.Disablebutton();
this.Close();

当您要显示LoginForm表单时,请传入MDIParent1表单。

//assuming this is in MDIParent1.cs (otherwise pass the form instance variable)
using(LoginForm lf = new LoginForm(this))
{
   lf.Show();
}
于 2013-07-25T18:16:57.283 回答
1

根据我对您的代码的理解,您正在创建一个新的 MDIParent1 窗口并在新创建的 MDIParent1 窗口上调用 DisableButton。您必须在拥有 LoginForm 的表单上调用 DisableButton(通过 MdiParent 属性)。

编辑:有人打败了我。

于 2013-07-25T18:20:31.097 回答
0

您应该在您的 MDIchild 表单中执行此操作

  if(this.MdiParent is  LoginForm)
  {
     (this.MdiParent as LoginForm).Disablebutton();
  }
于 2013-07-25T18:20:34.390 回答