|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
语言是不是不是最重要的?加载本文对提早加载在经常使用控件的完成做复杂的形貌。
1、在界面第一次显现时加载
最复杂的提早加载能够经由过程控件第一次显现时加载数据,比方你有良多的页签,只要用户切换到这个页签时,才会加载数据。
在.NET的Control中供应SetVisibleCore虚办法,当检测value是true且第一次挪用此办法时,挪用提早加载。可是我其实不保举这个办法,由于你有更好的中央。
-假如你的控件承继自Form大概UserControl,倡议重载OnLoad;
-假如承继自Control,能够重载OnCreateControl。
上面是提早加载数据的例子:
publicclassMyTabPage:TabPage{
protectedoverridevoidOnCreateControl(){
base.OnCreateControl();
stringoldText=this.Text;
this.Text="Loading..";
//TODO:在这里挪用加载数据的办法
this.Text=oldText;
}
}
2、树控件在第一次睁开时加载
TreeView由于一切的节点并非承继自Control,以是不克不及利用下面的体例,可是TreeView供应了OnBeforeExpand虚办法,最复杂的举措是在你盘算完成提早加载的节点到场一个是不是已加载的标志,当第一次睁开时,检测这个标志。
必需记着你的提早加载节点在根地位是不克不及收到这个事务的。
3、在表格中提早加载。
在Windows程序中,有的利用分页的体例完成提早加载,但这类体例的用户体验十分的糟。假如你但愿仍旧利用转动条的话,能够本人完成IBindList接口,外部持有一个数据的ID列表,在表格扣问数据时,才到数据库加载数据,一般的表格控件都可以很好的事情。
但这里有个应当注重的中央,比方用户按下PageDown时,表格控件一连的挪用猎取数据办法,假如每次哀求都往挪用数据库,将会很低的功能,应当让你的程序“预知”到大概要读下50笔数据了,以是一次性多读50条就能够。
这类办法碰到表格排序的时分就没有举措了。
以上是提早加载手艺的一样平常手艺,假如你有更好的办法,请指教。
因为二次编译器太复杂,那么建议只是在安装程序的时候编译一次,而不类似java那样运行就编译。并且我觉得,一次痛苦,总比多次低效率要舒服多了。 |
|