- 博客(10)
- 收藏
- 关注
原创 写Form设计器尝试(六) 实现菜单命令
打开主窗体代码界面,为Form1添加一个私有变量:private MenuCommandService menuCommandService;修改Load事件代码,代码如下: DesignSurface surface = new DesignSurface(); //设计器 toolBoxService = new ...
2020-04-01 16:45:43
472
原创 写FORM设计器尝试(五) 让设计器使用自定义控件
先要准备一个自定义控件。新建一个Window控件方案,命名为MyControl,添加一个名为ComboBoxField的用户控件,在该用户控件上放一个Lable和一个ComboBox,生成解决方案。将生成的dll文件复制到我们的Debug目录。打开设计器方案,在有形如toolBoxService.ToolBox.Items.Add(...);的最后加上如下代码:Assembly a1 =...
2020-04-01 16:10:20
266
原创 写FORM设计器尝试(四) 修改窗体上的控件属性
接下来的步骤是实现能在PropertyGrid中随意修改任何控件的属性。只要为DesignSurface的SelectionService实现一个SelectionChanged事件就行了。切换到Form1的代码窗口,为窗体类添加一个私有成员:private ISelectionService selectionService;然后再Load事件的最后加上:selectionSer...
2020-04-01 15:39:49
382
原创 写Form设计器尝试(三) 在窗体上添加控件
新建一个继承自ToolboxService的类,名为DemoToolboxService,加上必要的using语句,在所继承的类名上按鼠标右键,点实现抽象类,已经帮我们自动完成了DemoToolboxService的框架,由于我们需要在设计器窗体上显示一个工具箱,就像VS左侧的那个工具面板,不过我们现在做一个简单一点的,就用ListBox,在DemoToolboxService中添加一个类型为Li...
2020-04-01 15:19:10
1031
原创 写Form设计器尝试(二) PropertyGrid
切换到Form1的设计页面,往上面放一个SplitContainer,再在这个SplitContainer的右panel上放一个PropertyGrid,并将其Dock属性值设置成Fill。切换到代码编辑界面,并将上篇输入的代码的最后一行改成://原来的最后一行//this.Controls.Add(view);//修改成下面的代码this.splitContainer1.Pan...
2020-03-31 18:21:29
177
原创 写Form设计器尝试(一)
新建一个C# WindowForm方案,在工程的引用中增加System.Design,在Form1的代码中先添加using System.ComponentModel.Design; 然后双击Form,在Form的Load事件中写下以下代码:DesignSurface surface=new DesignSurface();surface.BeginLoad(typeo...
2020-03-31 18:08:07
370
原创 .NET控件开发基础(二)GDI+基础
GDI+是Graphics Device Interface的缩写,含义是图形设备接口,它的主要任务是负责系统与绘画程序之间的信息交换,处理所有Widnow程序的图形输出。在Window操作系统下,绝大多数具备图形界面的应用程序都离不开GDI,我们利用GDI所提供的众多函数就可以方便的在屏幕、打印机及其他输出设备上输出图形,文本等操作。GDI+对GDI进行了性能优化,并添加了许多新的功能。GD...
2020-03-17 09:55:17
310
原创 .NET控件开发基础(一)控件设计时支持方式之UITypeEditor
UITypeEditor 类提供一种基类,可以从该基类派生和进行扩展,以便为设计时环境实现自定义类型编辑器。在文本框值编辑器不足以有效地选择某些类型的值得情况下,自定义类型编辑器非常有用。若要实现自定义设计时UI 类型编辑器,必须执行下列步骤:1. 定义一个从UITypeEditor 派生的类。2. 重写EditValue 方法以处理用户界面、用户输入操作以及值得分配。3. 重写Get...
2020-03-13 10:21:31
2162
原创 .NET控件开发基础(一)控件设计时属性
Attribute 类将预定义的系统信息或用户定义的自定义信息与目标元素相关联。目标元素可以是程序集、类、构造函数、委托、枚举、事件、字段、接口、方法、可移植可执行文件模块、参数、属性(Property)、返回值、结构或其他属性(Attribute)。 属性所提供的信息也成为元数据。元数据可由应用程序在运行时进行检查以控制程序处理数据的方法,也可以由外部工具在运行前检查以控制应用...
2020-03-12 16:54:03
303
转载 C#中IDisposable接口实现
在Net中,由GC垃圾回收线程掌握对象资源的释放,程序员无法掌控析构函数的调用时机。对于一些非托管资源,比如数据库链接对象等,需要实现IDisposable接口进行手动的垃圾回收。那么什么时候使用Idisposable接口,以及如何使用呢?一、IDisposable的接口定义如下public interface IDisposable{ // Summary: //...
2020-02-27 11:04:49
1114
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人