有一个窗体,第一次进来的时候我是showDialog显示的,然后我把这个窗体隐藏了,我想把它在show出来(这里不用showDialog,因为用这个之后窗体会刷一次)。但是show出来的窗体不是模式窗体,我要的是show出来是模式窗体(就是只能操作当前窗体,点其他窗体是无法操作的。)

解决方案 »

  1.   

    这样说吧。我在主窗体点击出一个子窗体,然后隐藏了子窗体,我想在主窗体在显示出来的时候,子窗体仍然是模式窗体。但是不能用showDialog,子窗体我是用了this.hide(). visiable也用过。
      

  2.   

    Hide和Visible是一样的public void Hide()
    {
        this.Visible = false;
    }你说,因为用ShowDialog之后窗体会刷一次,那么你可以把计算过程放到主窗体ShowDialog之前,重载子窗体构造函数,将计算结果传进去直接显示。
      

  3.   

    我遇到和楼主一样的问题,使用showDialog()的话会独占线程,如果我正在使用progressbar进度条显示更新数据时,突然用showDialog()弹出窗体的话,更新会被中断。而如果用show()的话则不会出现该情况,但是show()不是模式窗体,无法实现只能操作当前窗体,点其他窗体无法操作的状态。
      

  4.   


    C# 非模态窗体(show)实现模态窗体(ShowDialog)的效果
    http://www.cnblogs.com/jxsoft/archive/2011/03/21/1990383.html
      

  5.   

    你把窗体隐藏了,然后进行了一系列操作,然后显示窗体,但这个时候不能用ShowDialog(),因为ShowDialog()会刷新窗体,而你想保存没有刷新过的数据,对吧?
    我很纳闷,为什么你一定要在窗体显示后保存数据呢,先保存数据再显示窗体不就好了。窗体隐藏并不是销毁,完全可以调用窗体上的保存方法,然后ShowDialog()不就好了。如果你隐藏窗体后进行的操作对你要保存的数据没有影响的话,完全可以在隐藏窗体的时候就进行数据保存。
      

  6.   

    当初这个刷新问题 搞的 命差点没了!!最后研究出,使用弹出div,同时灰化背景!这样处理div里面数据也简单的多了
      

  7.   

    TopMost=true只能设置窗体在最前面,而不能设置禁止操作其他窗口。。
      

  8.   

    我今天也是碰到楼主类似的问题,搞了两天没搞出来什么,,,我也是,,A窗体里有个“高级统计”,一点,然后ShowDialog()然后点提交按钮的时候,是 Visibel = falsh,但如果再次点“高级统计”我做了个判断,如果不为空的,就 Visibel = true ,,结果窗体是出来,但不是对话模式,,如果用ShowDialog(),会报错,那个判断我是这么写的 方法外面我定义了 FrmFinanceSelect ffs;
        
    if (ffs == null)
                {
                    ffs = new FrmFinanceSelect();
                    ffs.ShowOrderListEvent += ShowOrderForFrmFinanceSelect;//绑定FrmFinanceSelect提交按钮事件,并显示订单
                    ffs.ShowDialog();  
        
                }
                else if (ffs.IsDisposed)
                {
                    ffs = new FrmFinanceSelect();
                    ffs.ShowOrderListEvent += ShowOrderForFrmFinanceSelect;//绑定FrmFinanceSelect提交按钮事件,并显示订单
                    ffs.ShowDialog();
                }
                else
                {
                    ffs.Visible = true;
                  
                }求教,如何保存数据,并是对话窗啊,,,,另外我发觉一个很奇怪的问题,,按道理,close(),其实这是隐藏,但我在我这里(我在窗体里写了个按钮关闭,里面是close()),第一次是隐藏,没错,但如果按第2次,上面代码中,第2个判断立即生效了,也就是说被释放。。晕,求解,谢谢
      

  9.   

    - -能不能试试做第三个窗体,在第二个关闭前完全拷贝(用窗体间数据传递),然后关闭第二个,再打开第三个,这样就能独立的使用showDialog();