C 學習筆記 (27)使用者自定義控制項建立使用

2021-10-03 23:13:37 字數 2014 閱讀 4093

1、在上一次的筆記中提到了自定義控制項的方法,這種方法是自定義的windows窗體控制項庫,最後在/bin檔案下生成的是.dll格式檔案,將其拖到要使用專案的【工具箱】裡就可以直接使用了。

2、本次將記錄另一種自定義控制項的方法,是在自己寫好**後,編譯整個專案,可以直接在工具欄中看到它,沒有dll檔案,不需要自己新增到工具箱。

從使用上來看,第一種是專門寫給別人用的又不想給別人看**,則在建立專案時直接選擇建立使用者自定義控制項。第二種則直接在專案裡建立乙個元件,方便維護**。參考部落格

第一步:新建窗體應用程式

第二步:在解決方案資源管理器,右鍵新增->使用者控制項

在資源管理器中就新增了控制項了,如下面紅框所示:

設計頁面是這樣的,然後就可以寫自己的控制項**了:

如果需要新增類則可以同上面,新增->新建項->類

例子的整體結構是這樣子的,其中控制項**在usercontrol1中寫,mycomman和drawcomman是控制項需要用到的兩個類,form1中是寫窗體**的:

第三步:寫好控制項**後,執行,則可以看到【工具箱】部分出現自定義元件,這時候就可以拖動到窗體使用了

在自定義控制項的時候,遇到一些問題,這裡也記錄一下(本次自定義控制項的功能是畫出座標格,然後在form程式中給隨機數,通過定時器來實時畫折線圖):

1、寫好**,工具箱找中也成功新增後,拖動控制項到視窗,控制項什麼也不顯示,執行也是空白:

解決:問題出在自定義控制項的初始化(在usercontrol1.designer.cs中),如下面所示,注釋的是原來錯誤的,和正確的對比,少了sizechanged和paint,所以在執行時,控制項並沒有畫座標格。

private

void

initializecomponent()

更改後,從工具箱中拖動出來的控制項可以正常顯示:

2、例子還要實現實時畫圖的功能,但是執行後發現沒有任何變化,因此思考是定時器的問題

解決:在form1.designer.cs中,定時器初始化有問題,剛開始不能正常工作是因為少了tick。

// timer1

// this

.timer1.enabled =

true

;this

.timer1.interval =

1000

;this

.timer1.tick +

=new

system.eventhandler

(this

.timer1_tick)

;//要加上這句

C 自定義使用者控制項

上篇 控制項製作 本例是製作乙個簡單的自定義控制項,然後用乙個簡單的測試程式,對於初學者來說,本例子比較簡單,只能起到拋石引玉的效果。我也是在學習當中,今後會將自己所學的逐步寫出來和大家交流共享。第一步 新建乙個控制項庫專案 mycontrol 第二步 從工具箱裡面拖動1個picturebox 1個...

C 自定義使用者控制項

本例是製作乙個簡單的自定義控制項,然後用乙個簡單的測試程式,對於初學者來說,本例子比較簡單,只能起到拋石引玉的效果。我也是在學習當中,今後會將自己所學的逐步寫出來和大家交流共享。第一步 新建乙個控制項庫專案 mycontrol 第二步 從工具箱裡面拖動1個picturebox 1個button 6個...

C 自定義使用者控制項

下面就是建立過程 1 新建乙個windows窗體控制項庫 mycontrol 2 雙擊usercontrol1.cs,從工具箱裡拖出需要的控制項到使用者介面裡 3 然後右鍵檢視 就可以編寫自定義控制項的 了。4 儲存好,退出。新建乙個windows窗體應用程式。5 在使用者介面裡的工具箱中選擇乙個控...