最经再做一个考试系统,再次拾起对C#的记忆,却突然发现以前有很多细节没有发现,呵呵,今日将其记录下来。
1.要想通过窗体A传入参数来在窗体B中显示数据,则必须在调用窗体B.show()之前,在A的相关函数中调用B的自定义函数set()来传递数据,然后就可以在窗体B的Load事件中调用传入的变量。
盲点:设置需要传递的变量的函数调用不能再窗体的show() 函数之后,否则在Load事件中无法访问传递的变量;
2.在调用船体的showdianlog()函数时,窗体为模式对话框,会禁止鼠标访问其他任何窗体,因此此时为线程独占CPU。
盲点:如果需要多线程操作数据时,窗体显示不能为模式对话框。
3.在Panel中放一个FomrBorderSytle=NULL的窗体时,该窗体为Panele的子窗体,表现为该窗体在Panel的Controls集合中。
盲点:此时如果想通过Form父窗体按层次调用子控件内部的控件时,必须先找到该控件所在的父控件,然后使用父控件的Controls集合有子控件的ID来访问。
4.this.parnetform.close(); this.parentform.x; 如果接下来调用this.parentfrom.show()时会报错。若不调用的话,前两条语句可以正常执行。
盲点:原因似乎是在WINFORM窗体类内部函数中针对窗体的各种操作不是立即生效,而是在其所在函数执行完之后才生效的,且每个窗体执行完show()之后各自产生一个单独的线程。