none
在MDI子窗体中开线程创建新弹出窗体,程序会被挂起,无法继续下去 RRS feed

  • 问题

  • 各位达人,现在本人在做winform开发时遇到一奇怪问题,求解答

    MDI子窗体frmMdi的load事件中创建一新窗体frmTest并用showdialog方式弹出,然后frmTest中开新线程弹出frmMsg,结果在 frmMsg frm = new frmMsg();时程序被挂起不会继续走下去,上述任一条件不满足皆不可重现,有遇到过的吗。


    2012年5月8日 7:53

答案

  • 没必要把问题想的这么复杂, 你可以尝试在每个窗体打开的事件中去做操作 没必要开线程

    爱吃西瓜的小强[mcpd]

    2012年5月10日 7:30
  • 各位达人,现在本人在做winform开发时遇到一奇怪问题,求解答

    在MDI子窗体frmMdi中创建一新窗体frmTest并用showdialog方式弹出,然后frmTest中开新线程弹出frmMsg,结果在 frmMsg frm = new frmMsg();时程序被挂起不会继续走下去,有遇到过的吗

    ShowDialog()本身就是模式窗体,不可能同时存在两个都是模式窗体的。

    MDI本身是多窗体,为什么要模式呢?请取消模式窗体。

    同时把每次创建的form的MdiParent指向父窗体(this)。

    如果可以,没有必要使用多线程。直接在Click中写(每Click一次,创建一个新Form)。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月8日 8:25
    版主

全部回复

  • 各位达人,现在本人在做winform开发时遇到一奇怪问题,求解答

    在MDI子窗体frmMdi中创建一新窗体frmTest并用showdialog方式弹出,然后frmTest中开新线程弹出frmMsg,结果在 frmMsg frm = new frmMsg();时程序被挂起不会继续走下去,有遇到过的吗

    ShowDialog()本身就是模式窗体,不可能同时存在两个都是模式窗体的。

    MDI本身是多窗体,为什么要模式呢?请取消模式窗体。

    同时把每次创建的form的MdiParent指向父窗体(this)。

    如果可以,没有必要使用多线程。直接在Click中写(每Click一次,创建一个新Form)。


       QQ我:讨论(Talk)
    下载MSDN桌面工具(Vista,Win7)
    我的博客园
    慈善点击,点击此处

    2012年5月8日 8:25
    版主
  • 没必要把问题想的这么复杂, 你可以尝试在每个窗体打开的事件中去做操作 没必要开线程

    爱吃西瓜的小强[mcpd]

    2012年5月10日 7:30