短版本:我想触发Form_Load()事件而不使表单可见。这不起作用,因为展()忽略的Visible属性的当前值:加载表单时不显示它
tasksForm.Visible = false;
tasksForm.Show();
龙版本:我有两种形式WinForms应用程序:主要任务。主窗体始终显示。用户可以单击按钮打开任务表单,也可以单击一些只需直接运行任务而不打开任务表单的按钮。
当用户要求直接运行任务时,我想只在任务表单上调用一些公共方法而不显示它。不幸的是,任务逻辑取决于Form_Load()事件中发生的事情。我可以找到触发Form_Load()的唯一方法是调用Show()。我已经能够做的最好的是展现形式在最小化状态:
tasksForm.WindowState = FormWindowState.Minimized;
tasksForm.Show();
我想最干净的解决办法是拉的任务逻辑所担负的任务形式,并成为一个控制器类。然后我可以从主窗体和任务窗体中使用该类,并且只在需要用户可见时才加载任务窗体。但是,如果加载表单并不显示它是一件容易的事情,那将是一个较小的改变。
我鼓励你使用最干净的解决方案。稍后维护会更容易。 – 2008-09-15 21:06:11
正如我在答复中所说的,我赞同Scott的观点,你需要重做这个并且去控制器类的路线。这是很好的做法。 – 2008-09-15 21:13:15