基于DotNet Framework類庫的制作控件的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,尤其涉及一種基于DotNet Framework類庫的制作控件的方法及裝置。
【背景技術(shù)】
[0002]良好的應(yīng)用系統(tǒng)應(yīng)該在第一時(shí)間給予用戶數(shù)據(jù)有問題的提示,并能夠保障最終輸入系統(tǒng)內(nèi)部的數(shù)據(jù)是完整的、合法的、正確的數(shù)據(jù)。用戶界面中各種各樣的控件是用戶與系統(tǒng)進(jìn)行交互的地方,提供用戶編輯、瀏覽數(shù)據(jù)等功能。因?yàn)橹苯优c用戶打交道,因此,界面控件擔(dān)負(fù)了數(shù)據(jù)合法性、完整性、正確性等的驗(yàn)證職責(zé)。
[0003]在DotNet Framework 類庫中提供了 System.Windows.Forms 命名空間,在此命名空間中提供各種控件,使用這些控件,可以創(chuàng)建豐富的用戶界面。在現(xiàn)有的控件中,有些控件用于在應(yīng)用程序內(nèi)進(jìn)行數(shù)據(jù)輸入,比如Text Box(文本框)和Combo Box(下拉列表框)控件,有些控件顯示應(yīng)用程序數(shù)據(jù),比如Label (標(biāo)簽)。用戶可以在Microsoft VisualStud1集成開發(fā)環(huán)境提供的工具箱中找到這些控件,并在設(shè)計(jì)器中進(jìn)行可視化的界面開發(fā)?,F(xiàn)有技術(shù)中,在進(jìn)行界面開發(fā)時(shí)的具體操作為:首先創(chuàng)建一個(gè)窗體,然后在工具箱中找到需要的控件,將選中的控件拖拽到窗體中,進(jìn)行空間上的布局,然后在“屬性”頁面上設(shè)置控件的屬性信息,關(guān)聯(lián)事件響應(yīng)函數(shù)并在響應(yīng)函數(shù)中編寫具體的數(shù)據(jù)驗(yàn)證邏輯代碼。
[0004]針對一些具體的開發(fā)項(xiàng)目,很多界面具有某些相似的屬性,比如一些參數(shù)輸入類界面,某個(gè)參數(shù)一般需要一個(gè)label控件顯示參數(shù)名稱,還需要一個(gè)Text Box控件來輸入?yún)?shù)的值,同時(shí)Text Box控件需要做一些數(shù)據(jù)校驗(yàn)工作,比如只允許輸入整數(shù)或小數(shù),或者數(shù)據(jù)需要處于一定的范圍之內(nèi)等。
[0005]通過上述描述可見,如果直接用DotNet Framework的System.Windows.Forms命名空間提供的控件來開發(fā)界面,開發(fā)人員需要對每個(gè)參數(shù)輸入控件寫一套數(shù)據(jù)校驗(yàn)代碼,在界面參數(shù)比較多的情況下,工作量是很大的,并且很多代碼是重復(fù)性的,不利于后期的維護(hù)。
【發(fā)明內(nèi)容】
[0006]本發(fā)明提供了一種基于DotNet Framework類庫的制作控件的方法及裝置,能夠減小軟件開發(fā)時(shí)的工作量。
[0007]一方面,本發(fā)明提供了一種基于DotNet Framework類庫的制作控件的方法,該方法包括:
[0008]根據(jù)數(shù)據(jù)類型生成自定義控件,使每一個(gè)自定義控件對應(yīng)一種數(shù)據(jù)類型,并使所述自定義控件能夠?qū)?yīng)的數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行校驗(yàn);
[0009]將所述自定義控件添加到DotNet Framework集成開發(fā)環(huán)境的工具箱中。
[0010]進(jìn)一步地,所述根據(jù)數(shù)據(jù)類型生成自定義控件,使每一個(gè)自定義控件對應(yīng)一種數(shù)據(jù)類型,并使所述自定義控件能夠?qū)?yīng)的數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行校驗(yàn),包括:
[0011]根據(jù)DotNet UserControl控件生成自定義父控件,所述自定義父控件中封裝有所述自定義控件的公共的屬性和公共的功能;
[0012]根據(jù)DotNet Framework類庫中的底層基礎(chǔ)控件生成所述自定義控件,所述自定義控件繼承于所述自定義父控件。
[0013]進(jìn)一步地,所述屬性包括:
[0014]數(shù)據(jù)描述、對應(yīng)數(shù)據(jù)庫表的字段名、允許輸入的數(shù)據(jù)長度、控件字段值是否必須填充、控件字段值是否為只讀、允許輸入范圍、數(shù)據(jù)單位。
[0015]進(jìn)一步地,所述功能包括:獲得控件當(dāng)前的顯示狀態(tài)、獲得控件當(dāng)前的值、解析控件的取值范圍、設(shè)置當(dāng)前控件的顯示狀態(tài)、設(shè)置當(dāng)前控件的值、對控件中數(shù)據(jù)進(jìn)行合法性校驗(yàn)。
[0016]進(jìn)一步地,所述數(shù)據(jù)類型包括:
[0017]布爾型Bool、雙精度浮點(diǎn)型Double、單精度浮點(diǎn)型Float、整型Int、長整型Long、短整型Short、枚舉型Enum、字符串型String。
[0018]另一方面,本發(fā)明提供了一種基于DotNet Framework類庫的制作控件的裝置,該裝置包括:
[0019]控件生成模塊,用于根據(jù)數(shù)據(jù)類型生成自定義控件,使每一個(gè)自定義控件對應(yīng)一種數(shù)據(jù)類型,并使所述自定義控件能夠?qū)?yīng)的數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行校驗(yàn);
[0020]添加模塊,用于將所述自定義控件添加到DotNet Framework集成開發(fā)環(huán)境的工具箱中。
[0021]進(jìn)一步地,所述控件生成模塊包括:
[0022]自定義父控件生成子模塊,用于根據(jù)DotNetUserControl控件生成自定義父控件,所述自定義父控件中封裝有所述自定義控件的公共的屬性和公共的功能;
[0023]自定義控件生成子模塊,用于根據(jù)DotNetFramework類庫中的底層基礎(chǔ)控件生成所述自定義控件,所述自定義控件繼承于所述自定義父控件。
[0024]進(jìn)一步地,所述屬性包括:
[0025]數(shù)據(jù)描述、對應(yīng)數(shù)據(jù)庫表的字段名、允許輸入的數(shù)據(jù)長度、控件字段值是否必須填充、控件字段值是否為只讀、允許輸入范圍、數(shù)據(jù)單位。
[0026]進(jìn)一步地,所述功能包括:獲得控件當(dāng)前的顯示狀態(tài)、獲得控件當(dāng)前的值、解析控件的取值范圍、設(shè)置當(dāng)前控件的顯示狀態(tài)、設(shè)置當(dāng)前控件的值、對控件中數(shù)據(jù)進(jìn)行合法性校驗(yàn)。
[0027]進(jìn)一步地,所述數(shù)據(jù)類型包括:
[0028]布爾型Bool、雙精度浮點(diǎn)型Double、單精度浮點(diǎn)型Float、整型Int、長整型Long、短整型Short、枚舉型Enum、字符串型String。
[0029]通過本發(fā)明提供的一種基于DotNet Framework類庫的制作控件的方法及裝置,制作出與數(shù)據(jù)類型對應(yīng)的自定義控件,制作出的自定義控件能夠完成自身的數(shù)據(jù)校驗(yàn),用戶在進(jìn)行界面開發(fā)時(shí)可以根據(jù)數(shù)據(jù)類型選擇需要的控件,只需要在集成開發(fā)環(huán)境中設(shè)置控件的屬性,不需要對每個(gè)控件寫一套數(shù)據(jù)校驗(yàn)代碼,降低界面開發(fā)過程中在數(shù)據(jù)校驗(yàn)方面的工作量,提高開發(fā)速度,同時(shí)能夠減小后期代碼維護(hù)的工作量。
【附圖說明】
[0030]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0031]圖1是本發(fā)明實(shí)施例提供的一種基于DotNet Framework類庫的制作控件的方法流程圖;
[0032]圖2是本發(fā)明實(shí)施例提供的一種基于DotNet Framework類庫的制作控件的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0033]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例,基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動的前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0034]本發(fā)明實(shí)施例提供了一種基于DotNet Framework類庫的制作控件的方法,參見圖1,該方法包括:
[0035]步驟101:根據(jù)數(shù)據(jù)類型生成自定義控件,使每一個(gè)自定義控件對應(yīng)一種數(shù)據(jù)類型,并使所述自定義控件能夠?qū)?yīng)的數(shù)據(jù)類型的數(shù)據(jù)進(jìn)行校驗(yàn)。
[0036]步驟102:將所述自定義控件添加到DotNet Framework集成開發(fā)環(huán)境的工具箱中。
[0037]通過本發(fā)明實(shí)施例提供的一種基于DotNet Framework類庫的制作控件的方法,制作出與數(shù)據(jù)類型對應(yīng)的自定義控件,制作出的自定義控件能夠完成自身的數(shù)據(jù)校驗(yàn),用戶在進(jìn)行界面開發(fā)時(shí)可以根據(jù)數(shù)據(jù)類型選擇需要的控件,僅僅需要在集成開發(fā)環(huán)境中設(shè)置控件的屬性,不需要對每個(gè)控件寫一套數(shù)據(jù)校驗(yàn)代碼,降低界面開發(fā)過程中在數(shù)據(jù)校驗(yàn)方面的工作量,提高開發(fā)速度,同時(shí)能夠減小后期代碼維護(hù)的工作量。
[0038]用戶在進(jìn)行基于DotNet Framework類庫的軟件開發(fā)時(shí),可以直接從工具箱中選擇需要的控件,但是這些控件都是基礎(chǔ)控件,這些基礎(chǔ)控件中沒有數(shù)據(jù)校驗(yàn)的功能,用戶在使用的過程中需要根據(jù)當(dāng)前控件欲輸入?yún)?shù)的數(shù)據(jù)類型、是否必填、是否只讀、輸入范圍等情況對每一個(gè)控件編寫一套數(shù)據(jù)校驗(yàn)代碼,這樣會大大增加軟件開發(fā)的工作量。而本發(fā)明實(shí)施例中針對這個(gè)問題基于DotNet Framework類庫制作了自定義控件,這些自定義控件按照數(shù)據(jù)類型分類,并且?guī)в袛?shù)據(jù)校驗(yàn)的功能,用戶可以直接從工具箱中根據(jù)數(shù)據(jù)類型選擇需要的自定義控件,只需要在集成開發(fā)環(huán)境中設(shè)置控件的屬性,不需要對每個(gè)控件寫一套數(shù)據(jù)校驗(yàn)代碼,例如:整型自定義控件對應(yīng)的數(shù)據(jù)類型為整型,整型自定義控件能夠完成整型數(shù)據(jù)的校驗(yàn),包括當(dāng)前控件輸入的值是否為整型值,是否必填、是否只讀、輸入值是否超出允許的輸入范圍。
[0039]用戶可以通過修改自定義控件的屬性來使選用的自定義控件能夠適于實(shí)際需求,例如:在自定義控件的屬性中有“允許輸入范圍”這個(gè)屬性,用戶可以對該屬性進(jìn)行修改來滿足對數(shù)據(jù)輸入范圍的需求。自定義控件的功能可以通過功能函數(shù)來實(shí)現(xiàn),例如:在自定義控件中有“對控件中數(shù)據(jù)進(jìn)行合法性校驗(yàn)”的功能,可以通過“對控件中數(shù)據(jù)進(jìn)行合法性校驗(yàn)的函數(shù)”來實(shí)現(xiàn)自定義控件數(shù)據(jù)校驗(yàn)的功能。
[0040]所述步驟101,包括:
[0041]S1:根據(jù)DotNet UserControl控件生成自定義父控件,所述自定義父控件中封裝有所述自定義控件的公共的屬性和公共的功能;
[0042]其中,在DotNet Framework類庫中,DotNet UserControl類是一個(gè)可用來創(chuàng)建其他控件的空控件,在進(jìn)行控件的制作時(shí)需要以DotNet UserControl類作為父類來進(jìn)行制作。具體地,所述步驟S1可以通過下述方法實(shí)現(xiàn):基于DotNet UserControl類作為父類派生出自定義父控件。在步驟S1,自定義父控件中封裝有待生成的自定義控件的公共的屬性和公共的功能,通過該實(shí)現(xiàn)方式能夠方便后期對控件進(jìn)行擴(kuò)展。
[0043]S2:根據(jù)DotNet Framework類庫中的底層基礎(chǔ)控件生成所述自定義控件,所述自定義控件繼承于所述自定義父控件。
[0044]所述屬性包括:
[0045]數(shù)據(jù)描述、對應(yīng)數(shù)據(jù)庫表的字段名、允許輸入的數(shù)據(jù)長度、控件字段值是否必須填充控件字段值是否為只讀、允許輸入范圍、數(shù)據(jù)單位。
[0046]這些屬性存在于每一個(gè)制作出的自定義控件中,用戶可以對屬性進(jìn)行修改。
[0047]所述功能包括:獲得控件當(dāng)前的顯示狀態(tài)、獲得控件當(dāng)前的值、解析控件的取值范圍、設(shè)置當(dāng)前控件的顯示狀態(tài)、設(shè)置當(dāng)前控件的值、對控件中數(shù)據(jù)進(jìn)行合法性校驗(yàn)。
[0048]在每一個(gè)制作出的自定義控件中都含有上述的功能,用戶在使用自定義控件時(shí)不需要對每個(gè)控件寫一套數(shù)據(jù)校驗(yàn)的代碼,大大降低了在數(shù)據(jù)合法性、完整性檢測方面的工作量,提高軟件的開發(fā)速度,有效減少后期代碼維護(hù)的工作量。
[0049]所述數(shù)據(jù)類型包括:Boo