WinForm的延时加载控件概述

 更新时间:2014年08月27日 09:44:40   投稿:shichen2014  
这篇文章主要介绍了WinForm的延时加载控件,很实用的技巧,在C#程序设计中有着比较广泛的应用,需要的朋友可以参考下

本文主要针对WinForm的延迟加载在常用控件的实现做简单的描述。在进行C#项目开发的时候具有一定的实用性。具体如下:

一、在界面第一次显示时加载。最简单的延迟加载可以通过控件第一次显示时加载数据,例如你有很多的页签,只有用户切换到这个页签时,才会加载数据。
在.NET的Control中提供SetVisibleCore虚方法,当检测value是true且第一次调用此方法时,调用延迟加载。但是并不推荐这个方法,因为你有更好的地方。
①.如果你的控件继承自Form或者UserControl,建议重载OnLoad;
②.如果继承自Control,可以重载OnCreateControl。
下面是延迟加载数据的例子:

  public class MyTabPage : TabPage {
    PRotected override void OnCreateControl() {
      base.OnCreateControl();

    string oldText = this.Text;
      this.Text = "Loading..";

    //TODO:在这里调用加载数据的方法

    this.Text = oldText;
    }
  }

二、树控件在第一次展开时加载。TreeView因为所有的节点并不是继承自Control,所以不能使用上面的方式,但是TreeView提供了OnBeforeExpand虚方法,最简单的办法是在你打算实现延迟加载的节点加入一个是否已经加载的标记,当第一次展开时,检测这个标记。 必须记住你的延迟加载节点在根位置是不能收到这个事件的。

三、在表格中延迟加载。在Windows程序中,有的使用分页的方式实现延迟加载,但这种方式的用户体验非常的糟糕。如果你希望仍然使用滚动条的话,可以自己实现IBindList接口,内部持有一个数据的ID列表,在表格询问数据时,才到数据库加载数据,通常的表格控件都能够很好的工作。 但这里有个应该注意的地方,例如用户按下PageDown时,表格控件连续的调用获取数据方法,如果每次请求都去调用数据库,将会很低的性能,应该让你的程序“预知”到可能要读下50笔数据了,所以一次性多读50条就可以。
这种方法遇到表格排序的时候就没有办法了。

希望本文所述对大家的C#程序设计有所帮助

相关文章

  • C#停止线程的方法

    C#停止线程的方法

    这篇文章主要介绍了C#停止线程的方法,实例分析了C#正确停止线程的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • C#资源释放方法实例分析

    C#资源释放方法实例分析

    这篇文章主要介绍了C#资源释放方法,结合实例详细分析了C#资源释放的具体方法与相关技巧,需要的朋友可以参考下
    2016-02-02
  • Winform启动另一个项目传值的方法

    Winform启动另一个项目传值的方法

    这篇文章主要介绍了Winform启动另一个项目传值的方法,通过调用进程来实现项目之间的传值,需要的朋友可以参考下
    2014-11-11
  • C#中使用快速排序按文件创建时间将文件排序的源码

    C#中使用快速排序按文件创建时间将文件排序的源码

    C#中使用快速排序按文件创建时间将文件排序的源码...
    2007-03-03
  • Unity3D实现模型随机切割

    Unity3D实现模型随机切割

    这篇文章主要为大家详细介绍了Unity3D实现模型随机切割,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-03-03
  • C#实现TCP和UDP通信的示例详解

    C#实现TCP和UDP通信的示例详解

    这篇文章主要为大家详细介绍了C#实现TCP和UDP通信的相关知识,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下
    2023-03-03
  • 几分钟搞懂c#之FileStream对象读写大文件(推荐)

    几分钟搞懂c#之FileStream对象读写大文件(推荐)

    这篇文章主要介绍了c#之FileStream对象读写大文件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • C# 实现拖拉控件改变位置与大小的方法

    C# 实现拖拉控件改变位置与大小的方法

    下面小编就为大家分享一篇C# 实现拖拉控件改变位置与大小的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • C#实现顺序队列和链队列的代码实例

    C#实现顺序队列和链队列的代码实例

    今天小编就为大家分享一篇关于C#实现顺序队列和链队列的代码实例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • C#实现向函数传递不定参数的方法

    C#实现向函数传递不定参数的方法

    这篇文章主要介绍了C#实现向函数传递不定参数的方法,涉及C#操作函数参数的相关技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04

最新评论