国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

WinForm的延時加載控件概述

2020-01-24 02:28:15
字體:
來源:轉載
供稿:網友

本文主要針對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#程序設計有所幫助

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴彦淖尔市| 巫溪县| 义马市| 晴隆县| 洪泽县| 玛沁县| 海原县| 廉江市| 彩票| 南城县| 琼结县| 若羌县| 建湖县| 怀安县| 宾川县| 阳城县| 池州市| 江安县| 保靖县| 隆化县| 阳春市| 寻乌县| 平顺县| 益阳市| 汾西县| 涟水县| 萨嘎县| 营口市| 麻城市| 普兰县| 来凤县| 灯塔市| 精河县| 红原县| 敦化市| 太保市| 普宁市| 修文县| 兴安盟| 阜新市| 嵩明县|