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

首頁 > 編程 > .NET > 正文

從頭創(chuàng)建 Visual Basic .NET 控件 (八)

2024-07-10 13:05:11
字體:
供稿:網(wǎng)友
第 7 步:生成和測(cè)試控件
現(xiàn)在 trafficlight 控件的設(shè)計(jì)就完成了。選擇 build | build mycontrols(生成 | 生成 mycontrols),以創(chuàng)建最終的控件庫。

要測(cè)試控件,我們需要一個(gè) windows 窗體項(xiàng)目。您可以在其他解決方案中執(zhí)行此操作,但在開發(fā)控件所用的解決方案中執(zhí)行會(huì)更容易。從菜單中選擇 file | add project | new project(文件 | 添加項(xiàng)目 | 新項(xiàng)目)。選擇 windows application(windows 應(yīng)用程序)項(xiàng)目類型,將項(xiàng)目命名為 testtrafficlight。單擊 ok(確定),啟動(dòng)測(cè)試所需的 windows 應(yīng)用程序。

必須先將 trafficlight 控件放到工具箱中,才能將其拖放到測(cè)試應(yīng)用程序的空白窗體 1 中。右鍵單擊工具箱中的 windows 窗體選項(xiàng)卡,然后選擇 customize toolbox(自定義工具箱)。選擇 .net framework components(.net framework 組件)選項(xiàng)卡,然后單擊 browse(瀏覽)按鈕。瀏覽到您的 mycontrols 項(xiàng)目所在的位置,然后轉(zhuǎn)到該項(xiàng)目的 /bin 目錄。選擇 mycontrols.dll 組件并單擊 ok(確定)。現(xiàn)在,該對(duì)話框應(yīng)如圖 2 所示。



圖 2:在 customize toolbox(自定義工具箱)對(duì)話框中,trafficlight 控件被選中。

您可以看到 trafficlight 控件旁邊有一個(gè)復(fù)選標(biāo)記。單擊 ok(確定)按鈕,在工具箱的 windows forms(windows 窗體)選項(xiàng)卡上,trafficlight 控件將出現(xiàn)在控件列表的底部。圖 3 顯示了底部為 trafficlight 控件的工具箱。



圖 3:工具箱底部的 trafficlight 控件

現(xiàn)在,您可以將 trafficlight 控件拖放到 testtrafficlight 的空白窗體 1 中。默認(rèn)情況下,它被命名為 trafficlight1。您可以調(diào)整控件的大小,重新設(shè)置控件的屬性,包括 status 屬性,該屬性有一個(gè)下拉菜單,菜單中包含該屬性的三個(gè)可能的值。請(qǐng)注意,調(diào)整控件的大小或更改其屬性時(shí),控件將在設(shè)計(jì)器中自動(dòng)刷新。

要恢復(fù)屬性的默認(rèn)值,請(qǐng)將 status 屬性更改為 statusred。然后,右鍵單擊 properties(屬性)窗口中的 status(狀態(tài))屬性,并選擇 reset(重置),如圖 4 所示。該屬性將更改回 statusgreen。如果將 borderwidth 屬性設(shè)置為 1 之外的其他值,也可以使用同樣的方法恢復(fù)其默認(rèn)值。



圖 4:properties(屬性)窗口中 status(狀態(tài))屬性的 reset(重置)選項(xiàng)。請(qǐng)注意窗口底部有關(guān) status(狀態(tài))屬性的說明。

如果需要,還可以為控件插入 statuschanged 事件。然后,可以使用該事件中的以下代碼行查看更改后的狀態(tài):

msgbox("新狀態(tài)為 " & newstatus.tostring)

要在操作中測(cè)試該控件,您需要啟動(dòng) testtrafficlight 項(xiàng)目。此時(shí),它還不是該解決方案的啟動(dòng)項(xiàng)目,因此您需要解決它。在 solution explorer(解決方案資源管理器)中,右鍵單擊 solution(解決方案)名稱 - solution explorer(解決方案資源管理器)中的第一行。選擇 properties(屬性),然后將 single startup project(單啟動(dòng)項(xiàng)目)設(shè)置從 mycontrols 更改為 testtrafficlight,然后單擊 ok(確定)。

按 f5 鍵啟動(dòng)該項(xiàng)目。將顯示帶有 trafficlight 控件的窗體。測(cè)試控件:按下不同的燈,查看它們是否亮起。您還可以測(cè)試 borderwidth 屬性,嘗試在代碼中設(shè)置燈的 status 屬性。

小結(jié)
盡管 trafficlight 是一個(gè)簡單的控件(雖然曾有開發(fā)人員要把它用到真實(shí)的項(xiàng)目中),但它卻顯示了開發(fā)復(fù)雜控件所需要的所有原理,包括:

在控件中添加屬性。
使用默認(rèn)值和說明,使屬性與 visual studio ide 協(xié)調(diào)。
在 paint 事件中插入邏輯以繪制控件。
在繪圖邏輯中使用 gdi+。
為控件設(shè)置位圖,以便在工具箱中顯示。
創(chuàng)建復(fù)雜控件的關(guān)鍵在于熟悉 gdi+ 的繪圖能力。如果理解了 trafficlight 繪制邊框和彩色圓的原理,那么您就有了一個(gè)好的起點(diǎn)。關(guān)鍵是,有了 visual basic .net,即使象我這么懶惰的程序員也能創(chuàng)建高級(jí)的 windows 窗體。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巢湖市| 天等县| 江都市| 略阳县| 琼结县| 南充市| 张掖市| 疏附县| 德州市| 武冈市| 郓城县| 扶沟县| 射阳县| 韩城市| 沂源县| 浦东新区| 高雄县| 吴堡县| 文化| 日照市| 徐汇区| 凤凰县| 观塘区| 前郭尔| 丰顺县| 双桥区| 靖西县| 郴州市| 镇平县| 霍城县| 马鞍山市| 松江区| 玉屏| 裕民县| 巧家县| 营口市| 永吉县| 桃园市| 陇西县| 巴中市| 上高县|