为什么打开模式窗体再关闭后,主窗体会闪烁呢?(.ShowDialog()闪烁,但是Show()就不闪烁)
-----------------------------------------------------        //打开业务单
        private void tsbtnOpen_Click(object sender, EventArgs e)
        {
            frmlst = new FrmYWDList();
            frmlst.ShowDialog();
            //frmlst.Show();
        }就是用上面的代码打开。
如果用
frmlst.ShowDialog();
关闭 frmlst 时,主窗体会明显的闪烁。
但是
frmlst.Show();
后,关闭 frmlst后,主窗体就没有任何闪烁,为什么呢?

解决方案 »

  1.   

    showdialog是一个进行路经绑定的show方法,他是不可以自由切换的,换言之,就是,当你没有关闭你当前页的前提下,你是无法关闭该页面后面的任一页面的,它是当前唯一(路经打开)为true的。 而show方法由于未进行绑定,它所显示的各个窗口、对话框是可以相互切换,而不需要关闭当前窗口、对话框。但是他由于未进行绑定,所以每个由show方法打开的窗口的顺序是非固定的,如果遇到什么问题,由show方法打开的窗口的顺序可能会有很大的改变! show()仅仅是显示出来窗口界面而已```也就是和你执行的结果在同一窗口显示```所显示的窗口可以在后台运行```而showDialog()是一个对话框窗口界面```执行结果以新窗口界面出现```不允许进行后台运行```就是你想编辑什么的时候```非得先关闭showDialog()窗口界面才可以进行其他操作``` 这就是它们的一点小区别了``` show()是非模式窗体. showDialog()是模式窗体. 区别在于,以showDialog()打开的窗体,要等窗体关闭后才能操作其他窗体.而show()则不受此限制. 这是最经常的区别了, 
      

  2.   

    你showdialog();
    下面在没代码了,应该不会,除非你重新初始化了程序。