时间:2021-05-20
本文主要针对WinForm的延迟加载在常用控件的实现做简单的描述。在进行C#项目开发的时候具有一定的实用性。具体如下:
一、在界面第一次显示时加载。最简单的延迟加载可以通过控件第一次显示时加载数据,例如你有很多的页签,只有用户切换到这个页签时,才会加载数据。
在.NET的Control中提供SetVisibleCore虚方法,当检测value是true且第一次调用此方法时,调用延迟加载。但是并不推荐这个方法,因为你有更好的地方。
①.如果你的控件继承自Form或者UserControl,建议重载OnLoad;
②.如果继承自Control,可以重载OnCreateControl。
下面是延迟加载数据的例子:
二、树控件在第一次展开时加载。TreeView因为所有的节点并不是继承自Control,所以不能使用上面的方式,但是TreeView提供了OnBeforeExpand虚方法,最简单的办法是在你打算实现延迟加载的节点加入一个是否已经加载的标记,当第一次展开时,检测这个标记。 必须记住你的延迟加载节点在根位置是不能收到这个事件的。
三、在表格中延迟加载。在Windows程序中,有的使用分页的方式实现延迟加载,但这种方式的用户体验非常的糟糕。如果你希望仍然使用滚动条的话,可以自己实现IBindList接口,内部持有一个数据的ID列表,在表格询问数据时,才到数据库加载数据,通常的表格控件都能够很好的工作。 但这里有个应该注意的地方,例如用户按下PageDown时,表格控件连续的调用获取数据方法,如果每次请求都去调用数据库,将会很低的性能,应该让你的程序“预知”到可能要读下50笔数据了,所以一次性多读50条就可以。
这种方法遇到表格排序的时候就没有办法了。
希望本文所述对大家的C#程序设计有所帮助
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1概述首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较
1概述首先需要说明的一点,无论是Winform,还是Webform,都有很成熟的日历控件,无论从易用性还是可扩展性上看,日期的选择和校验还是用日历控件来实现比较
本文实例讲述了原生javaScript实现图片延时加载的方法。图片延时加载其实是有jquery插件了并且加载方法非常的简单并且合理了,但有朋友觉得加载jquer
本文实例讲述了WinForm遍历窗体所有子控件的方法。分享给大家供大家参考,具体如下://////C#只遍历控件子控件,不遍历孙控件///当控件有子控件时,需要
C#中自定义控件VS用户控件大比拼1自定义控件与用户控件区别WinForm中,用户控件(UserControl):继承自UserControl,主要用于开发Co