写Form设计器尝试(一)

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 带的一个资源本地化的工具。可以反编译看看它的源码。

    对比123, 我发现两者虽然都实现了Form Designer,但设计思路迥然不同显然WinRes用的办法要简明。原因是.net 2.0增强了设计器的功能并简化了设计器的调用方法。由于时间限制,短期内写一个功能完善的Form设计器可能难。我想做的是做一些测试,得出基于.net 2.0写一个Form设计器的基本方法。
    我想先写一个没有任何功能但能看到设计器样式的小例子来测试。以后再慢慢增加设计的功能,比如控件的添加删除,属性的设置,保存文件等功能。
    我们的步骤如下:
    VS2005(我用的版本是RC)新建一个C# WindowsForm方案, 在工程的引用中增加System. Design,  Form1的代码中先添加

using  System.ComponentModel.Design;

    然后双击Form, FormLoad事件中写以下代码:

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

    然后运行方案,这是最简单也没任何用处的窗体设计器了,但至少我们能调整那个被设计Form的大小:)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值