0

我会先告诉你我想要做什么,然后告诉你我是如何尝试的。如果有更好的方法请告诉我。

我正在使用两种形式 - 我们称它们为 form_main 和 form_preferences

当 form_preferences 表单启动时,我希望禁用 form_main 直到单击 form_preferences 上的按钮(保存按钮)。

所以这就是我正在做的事情:在 form_main 中单击按钮

form_preferences frm_p = new form_preferences();
frm_p.Visible = true;
this.enabled = false;

//到目前为止,一切都很好

当我点击 form_preferences 上的保存时,它会调用 form_main 中的一个公共静态方法,该方法需要再次启用该表单。不幸的是,我不能直接这样做,因为它是一种静态方法。

我尝试创建表单的新实例,但随后我必须创建新实例并销毁原始实例,这似乎是一种很大的浪费和低效。有一个更好的方法吗?

4

2 回答 2

1

将 form_main 方法更改为实例方法而不是静态方法。在创建它时将 form_main 的实例传递给您的 sub_form,因此它保留一个引用。

于 2009-07-13T06:17:07.637 回答
0

如果您的主表单只有一个副本,则将您的表单设置为单例或在程序中使用静态引用从静态方法中访问它。

在您的主要方法中执行以下操作...

public static class Program {

  public static YourFrom form = null;

  public static void Main(string args[]) {
    Program.form = new YourFrom();
    Application.Run(form);   
  }
}

每当您需要访问类中的表单对象时,请使用 Program.form 对象来访问它。

于 2009-07-13T06:31:43.380 回答