关于模式对话框和非模式对话框(Form.Show()&Form.ShowDialog())
winform模式对话框和非模式对话框
对于窗体的show和showdialog方法,大部人知道它们的区别,show是显示出窗体后,本项目中的其他窗体也能获得焦点,而showdialog则不然,只能当前窗体的激活状态。这只是一方面。
另一方面也是值得注意的,就是show出来的窗体,在单击关闭时,窗体就会被注销掉,不存在内存中,而showdialog呢,只是hide掉窗体,没有把窗体从内存只注销,所以窗体内的成员也不会消失,当再次调用的话,原来窗体成员的数据会保留下来。如果想注销掉showdialog的窗体可以调用窗体对象的Dispose来完成。
static
对于窗体的show和showdialog方法,大部人知道它们的区别,show是显示出窗体后,本项目中的其他窗体也能获得焦点,而showdialog则不然,只能当前窗体的激活状态。这只是一方面。
另一方面也是值得注意的,就是show出来的窗体,在单击关闭时,窗体就会被注销掉,不存在内存中,而showdialog呢,只是hide掉窗体,没有把窗体从内存只注销,所以窗体内的成员也不会消失,当再次调用的话,原来窗体成员的数据会保留下来。如果想注销掉showdialog的窗体可以调用窗体对象的Dispose来完成。
static
static在C#中是静态声明的关键字,然而它与普通的非静态有什么区别呢?
通常咱们说的一句话是在类中,静态的成员是属于类,非静态的成员属于对象(或实例)。但是怎么理解呢?
是这样的,静态的成员在编译时,首先被初始化,一旦被加载,有且只有一份存在程序中,但你不管怎么修改,都会发生改变。它的消毁和进程一起。
非静态成员就不一样了,是每个对象有一个自己的“值”,不同的对象之间没有关系。
通常咱们说的一句话是在类中,静态的成员是属于类,非静态的成员属于对象(或实例)。但是怎么理解呢?
是这样的,静态的成员在编译时,首先被初始化,一旦被加载,有且只有一份存在程序中,但你不管怎么修改,都会发生改变。它的消毁和进程一起。
非静态成员就不一样了,是每个对象有一个自己的“值”,不同的对象之间没有关系。