寫Form設計器嘗試(一) Start

來源:互聯網
上載者:User

    Eddie Sheffield作為微軟之外的第一個發現啟用Form Designer的人,確實是了不起。
    幾年過後的今天,已經可以找到一些關於Form Designer的資料,雖然不多也不全面,但畢竟還是有一些。我手上的資料是:
    1、《Dissecting a C# Application Inside SharpDevelop》中文版,第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事件中寫以下代碼:

DesignSurface surface = new DesignSurface();
surface.BeginLoad(typeof(Form));
Control view = (Control)surface.View;
view.Dock = DockStyle.Fill;
this.Controls.Add(view);

    然後運行方案,這是最簡單也沒任何用處的表單設計器了,但至少我們能調整那個被設計Form的大小

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.