回 帖 发 新 帖 刷新版面

主题:showdialog()和show()的区别?请各位高手指点一二....

showdialog()和show()的区别?他们都可以调用一个窗口..
请各位高手指点一二....

回复列表 (共6个回复)

沙发

普通来讲,调用是一样的,但是细节方面是不一样的
比如说,在主窗体有一个DataGrid控件和一个Button按钮,另外有一个子窗体,作用是用来对主窗体中的数据进行添加、修改和删除等。
如果用show()显示出子窗体的话,那么,在子窗体的操作完成后,是不会再调用到主窗体show()下面的语句了。也就是说DataGrid里的数据无法再刷新。
而如果是用showdialog(),本窗体将会失去焦点。在子窗体的操作完成后,才会继续调用到主窗体下面的语句。例如在showdialog()后面还有一个调用refreshDate()过程的话,在子窗体被关闭后,将会刷新DATAGRID里的数据。

show()只是普通的显示,而showdialog()则可以在显示后,禁用当前窗体,当执行完新窗体的操作后,再继续当前窗体的语句。

我就发现有这么个区别,其他的还真不知道……
楼下的来补充吧。学习……

板凳

一个是有模式对话框,一个是无模式对话框

3 楼

showdialog(),出来的窗体会得到焦点,在关闭之前焦点是不会转移到其他窗体的。
show(),出来的窗体,焦点可以在不同窗体之间转移。

4 楼

[em2]

5 楼

showdialog()是模态窗体,在关闭子窗体前不能使用父窗体;
show()非模态窗体,只是单纯的调出另一个窗体,不影响父窗体的操作.

6 楼

這種問題需要問嗎?

我来回复

您尚未登录,请登录后再回复。点此登录或注册