999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C#在組合框中實現樹形結構數據

2016-08-12 02:15:34葛玉曾垂振楊云飛
中國新通信 2016年13期

葛玉 曾垂振 楊云飛

【摘要】 本文通過分析了如何在C#中的組合框控件中實現多層次的樹形結構列表數據,使其具有TreeView的功能與特性,并以創建一個樹形結構列表的用戶控件為例詳細闡述了實現方法。

【關鍵詞】 組合框 樹形結構 C# TreeView

C#是一種基于現代面向對象設計方法的語言,它是基于C語言和Microsoft.NET平臺開發的,它具有簡單、現代、通用的特點,它讓程序員可以快速地編寫各種基于Microsoft. NET平臺的應用程序。組合框combox是一個常用控件,通常用作選擇器,在Visual Studio 2008軟件中,組合框有兩種方式,一種是不可輸入的下拉列表,一種是帶輸入框的下拉列表框,無論是哪一種方式,其下拉列表都是單一的項目列出,各項目之間為并列關系,如果想在組合框中實現帶層次關系的下拉選擇項,以組合框自帶的屬性無法實現。本文將通過一個全國行政區域選擇的實例,介紹如何在Visual Studio 2008中實現帶樹形結構下拉選擇項的組合框,數據庫采用SQL Server2005。

一、數據表設計

需要實現樹形結構的數據源是全國行政區域,分為省市區三級,主要有2個字段,即代碼(DM),區域名稱(MC),以代碼來區分省、市、區的層級關系,兩位代碼為一層,如:北京市為11,市轄區為1101,東城區為110101,北京市下轄縣為1102,密云縣為110228;以代碼的位數來區分行政區域樹中各節點的位置。全國行政區劃表結構如表1所示。

二、創建用戶控件UserControls

用戶控件UserControls就是用戶自定義的控件,其好處就是代碼的復用性能夠在多個項目中調用該控件,將帶有樹形結構數據的組合框創建為用戶控件,在需要的時候可以自由調用。

在Visual Studio 2008設計器中,添加用戶控件,起名為UcCombTree,系統會自動生成一個UcCombTree.cs的類,在代碼編輯器中,將其繼承類改為ComboBox,使該用戶控件具有組合框ComboBox的特性,具體代碼如下所示:

public partial class UcCombTree : ComboBox

三、構造控件屬性及事件

用戶控件創建后,必須在函數中構造與控件相對應的屬性及事件,以方便在其它地方使用。針對組合框的特性,必須要構造的事件有下拉列表展開DropDown事件,具體代碼如下:

ToolStripDropDown dropDown;

在下拉列表中的選項為樹形結構,即應該有TreeView的特性,所以相應的也需要構造與TreeView有關的事件,包括有樹節點雙擊DoubleClick,選中樹節點SelectNode,通過代碼執行完成后,重新生成解決方案,在Visual Studio 2008設計器的工具箱中出現一個新的組件UcCombTree.

四、帶樹形結構下拉選擇項組合框的實現

將組件UcCombTree拖動到程序界面中,呈現出來的樣式為組合框樣式,如圖1所示。

下面要解決的問題就是將行政區劃數據表中的內容添加到UcCombTree的下拉列表中。在前面設計中,已經在用戶控件UcCombTree中添加了與TreeView相關的屬性與事件,在構造行政區劃樹結構時,可直接使用TreeView的特性,將數據內容加載到TreeView上??蓸嬙靹摻涞暮瘮礐reatTree,函數中設定兩個參數,一個為目標樹,另一個為數據來源。因為用戶控件UcCombTree也具有TreeView的特性,所以目標樹即可設定為UcCombTree,數據來源采用DataTable。函數在執行過程中,采用遍歷的方法,在數據表從前往后依次讀取每一個數據,首先依據行政區劃代碼的長度來判斷該點屬于哪一節節點,2位則為第一級,4位則為第2級,6位則為第3級;如果某個數非第一級節點,使用截取函數,獲取該代碼的前2位以判斷其上級節點位置,按此方法將數據表中的所有數據讀取完畢。

實現算法如下:

{

遍歷數據表中的所有數據;

{

讀取行政區劃代碼;

讀取行政區劃地域名稱;

在樹節點上記錄地域代碼和地域名稱;

If(代碼長度為2)

{

則增加為第一層節點;

}

Else

{

找到該代碼的上一級代碼,添加為上一級代碼的子節點;

}

}

帶樹形結構的組合框在程序中的應用如圖2所示。每個節點都對應數據庫中的代碼與名稱兩個字段,使用數據時,如果需要地域名拼接,可把需要的節點名稱連接起來;如果不拼接,讀取當前節點名即可。

五、 結束語

在C#中利用用戶控件構建成帶有樹形結構數據的組合框,將復雜的算法形成函數在用戶控件類中實現,在需要反復調用時,只需要按照數據的規律修改數據讀取的方法即可。用戶控件與數據庫的有效結合也加快了程序運行的速度。

參 考 文 獻

[1] 郭忠南,層次結構數據在組合框中樹形效果的動態實現,計算機時代,2012.7

[2] 吳文強,用自定義TreeView控件實現層次結構數據瀏覽功能,電腦編程技巧與維護,2012.9

主站蜘蛛池模板: 香蕉eeww99国产在线观看| 中文字幕波多野不卡一区| 亚洲国产中文欧美在线人成大黄瓜 | 成人午夜天| 欧美不卡视频一区发布| 青青草一区二区免费精品| 极品国产一区二区三区| 91人妻在线视频| 久久青草免费91线频观看不卡| 日韩大片免费观看视频播放| 麻豆精品国产自产在线| 久久精品中文无码资源站| 51国产偷自视频区视频手机观看 | 在线无码九区| 91免费在线看| 久久天天躁狠狠躁夜夜2020一| 亚洲国产成人久久77| 中文字幕乱妇无码AV在线| 无码中字出轨中文人妻中文中| 国产精品白浆无码流出在线看| 日韩国产综合精选| 久久久91人妻无码精品蜜桃HD| 久久久久青草线综合超碰| 日本高清成本人视频一区| 久久不卡国产精品无码| 熟妇人妻无乱码中文字幕真矢织江| 老司机久久精品视频| 色天堂无毒不卡| 91免费精品国偷自产在线在线| 免费在线色| 幺女国产一级毛片| 国产h视频在线观看视频| 一级一毛片a级毛片| 日韩第九页| 欧美成人一级| 99久久亚洲精品影院| 色视频久久| 成·人免费午夜无码视频在线观看| 久热精品免费| 欧洲欧美人成免费全部视频| 国产成人永久免费视频| 福利在线一区| 久久这里只有精品8| 亚洲精品日产AⅤ| 亚洲全网成人资源在线观看| 亚瑟天堂久久一区二区影院| 精品国产一二三区| 免费无码网站| 九九久久精品国产av片囯产区| 亚欧美国产综合| 国产精品嫩草影院视频| 色成人综合| 女人毛片a级大学毛片免费| 国产av一码二码三码无码| 五月天婷婷网亚洲综合在线| 九九香蕉视频| 国产中文一区二区苍井空| 免费黄色国产视频| 视频二区欧美| 国产免费a级片| 狠狠躁天天躁夜夜躁婷婷| 久久精品无码中文字幕| 亚洲精品成人福利在线电影| 国产小视频在线高清播放| 日本一区二区三区精品国产| 91精品免费高清在线| 国产精品免费p区| 好吊色国产欧美日韩免费观看| 国产一区二区丝袜高跟鞋| 欧美一级99在线观看国产| 久久精品国产精品青草app| 狠狠综合久久| 国产亚洲欧美在线中文bt天堂 | v天堂中文在线| 无码国内精品人妻少妇蜜桃视频| 99久久精品国产麻豆婷婷| 高清码无在线看| 亚洲中文精品人人永久免费| 国产视频入口| 99久久无色码中文字幕| 青青草a国产免费观看| 色悠久久综合|