eddie sheffield
作為微軟之外的第乙個發現啟用
form designer
的人,確實是了不起
。幾年過後的今天,已經可以
找到一些關於form designer的資料,雖然不多也不全面,但畢竟還是有一些。我手上的資料是:1、《
》中文版,第
16章專門講
form
設計器;2、
windowsforms.net
sharpdevelop
得到的思路;3、
winres
這個工具,隨
vs2005/.net framework2.0
帶的乙個資源本地化的工具。可以反編譯看看它的原始碼。對比1
、2與3,
我發現兩者雖然都實現了
form designer
,但設計思路迥然不同,顯然
winres
用的辦法要簡明。原因是
.net 2.0
增強了設計器的功能並簡化了設計器的呼叫方法。由於時間限制,短期內寫乙個功能完善的
form
設計器可能難。我想做的是做一些測試,得出基於.net 2.0寫乙個
form
設計器的基本方法。
我想先寫乙個沒有任何功能但能看到設計器樣式的小例子來測試。以後再慢慢增加設計的功能,比如控制項的新增刪除,屬性的設定,儲存檔案等功能。
我們的步驟如下:
在vs2005中(
我用的版本是
rc)新建乙個
c# windowsform
方案,
在工程的引用中增加
system. design,
在form1
的**中先新增
using
system.componentmodel.design;
然後雙擊
form, 在form的load事件中寫以下**:
designsu***ce su***ce
=new
designsu***ce();
su***ce.beginload(
typeof
(form));
control view
=(control)su***ce.view;
view.dock
=dockstyle.fill;
this
.controls.add(view);
然後執行方案,這是最簡單也沒任何用處的窗體設計器了,但至少我們能調整那個被設計
form
的大小:)
寫Form設計器嘗試 一
新建乙個c windowform方案,在工程的引用中增加system.design,在form1的 中先新增 using system.componentmodel.design 然後雙擊form,在form的load事件中寫下以下 designsu ce su ce new designsu ce...
寫Form設計器嘗試 三 在窗體上新增控制項
新建乙個繼承自toolboxservice的類,名為demotoolboxservice,加上必要的using語句,在所繼承的類名上按滑鼠右鍵,點實現抽象類,已經幫我們自動完成了demotoolboxservice的框架,由於我們需要在設計器窗體上顯示乙個工具箱,就像vs左側的那個工具面板,不過我們...
寫Form設計器嘗試 五 讓設計器使用自定義控制項
在 寫form 設計器嘗試 三 leejee 提出了自定義控制項的問題。我於是作了乙個小測試,來實現設計器中使用自定義控制項。先要準備乙個自定義控制項。新建乙個 windows 控制項方案,命名為 mycontrol,新增乙個名為 comboboxfield 的使用者控制項,在該使用者控制項上放乙個...