最大限度地减少儿童模态形式,而不是最小化主要形式和恢复儿童模态形式

时间:2017-04-20 07:50:52

标签: c# forms winforms modal-dialog

我有一个模态形式,它会做一些长时间的操作,在那个操作期间,用户想要最小化模态形式并在主窗体中执行一些其他活动,模态窗体的进度条显示在主窗体状态栏中

当用户点击状态栏时,模态表单应该显示给用户。

概述:

  1. 我们有Main Winform和Child Modal Winform
  2. 子模态表单有一些长操作,由Progress Bar
  3. 显示
  4. 如果用户最小化子表单。它完全最小化Main From
  5. 但是用户希望仅最小化子表单并在主表单中执行某些操作
  6. 我尝试了两种方法

    • 隐藏最小化事件的模态。子表单已隐藏 然后我无法恢复从中显示它的子窗体实例 自模态形式的对象以来的主要形式

      使用(Form1 reportForm = new Form1(dbConnection)) {            reportForm.ShowDialog(); }

    • 如果我做模态形式的最小化,它也最小化主要形式。 在一个stackoverflow中,提到模态形式被最小化,然后主形式也将最小化主形式,这是正确的设计行为。

    请告诉我这个问题的方法。

2 个答案:

答案 0 :(得分:0)

模态表单的重点是用户不能在父表单中执行其他操作。

假设您的长时间运行操作取决于模态表单的输入,您应该这样做:

  1. 保持表格模式
  2. 将长操作移动到后台工作程序
  3. 在关闭模态表单
  4. 时启动后台工作程序
  5. 打开新的非模态表单以显示后台工作人员的进度。

答案 1 :(得分:0)

试试此链接...

https://msdn.microsoft.com/en-us/library/7aw8zc76(v=vs.110).aspx

 protected void MDIChildNew_Click(object sender, System.EventArgs e){  
   Form2 newMDIChild = new Form2();  
   // Set the Parent Form of the Child window.  
   newMDIChild.MdiParent = this;  
   // Display the new form.  
   newMDIChild.Show();  
}