自定义控件示例
一个项目只产生一个程序文件。要产生dll文件,得分成2个项目。
解决方案>项目>类
方法比较多嘛,VS也提供了建立用户控件类型的项目。我给一种方法吧,不要局限于这种。
假设我需要定制一个textbox,使它具有这样的性质:有一个默认的字符串,这个字符串会显示在textbox里面,当这个textbox获得焦点后,textbox会清空这个默认字符串,当textbox失去焦点后,如果textbox的内容是空的话,会显示这个默认字符串。
1.新建一个解决方案Solution1。
文件-新建项目-其他类型项目-visual stdio空白解决方案
2.在这个解决方案里面添加2个项目:Solution1Test
右键解决方案-添加新建项目-Windows窗体应用程序(项目名称:Solution1Test)
右键解决方案-添加新建项目-类库(项目名称:MyTextBox)
3.这个时候系统自动帮你在MyTextBox里面产生了一个类Class1,把这个改个名叫MyTextBox,然后添加必要的引用:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
然后写入如下的内容:
namespace MyTextBox
{
public class MyTextBox:TextBox
{
/// <summary>
/// 默认的字符串
/// </summary>
string _DefaultString;
/// <summary>
/// 默认的字符串
/// </summary>
public string DefaultString
{
set { _DefaultString = value;
this.Text = value; }
}
public MyTextBox()
{
this._DefaultString = "请输入关键字";
this.Text = this._DefaultString;
}
protected override void OnEnter(EventArgs e)
{
if (this.Text == this._DefaultString)
{
this.Text = string.Empty;
}
base.OnEnter(e);
}
protected override void OnLeave(EventArgs e)
{
if (this.Text == string.Empty)
{
this.Text = this._DefaultString;
}
base.OnLeave(e);
}
}
}
4.把MyTextBox这个项目编译一下
右键-生成,在bin目录下面自然就会有个dll文件了。
5.转到Solution1Test,添加对MyTextBox的引用。这个时候,你在左边的工具箱里面应该就能看到这个MyTextBox了,直接拖到窗体上去,然后在窗体的构造函数里面设置一下MyTextBox的默认字符串,当然不设置也行,应为MyTextBox的构造函数已经初始化了一个默认的字符串:
public Form1()
{
InitializeComponent();
this.myTextBox1.DefaultString = "请输入关键字";
}
6.运行,效果和预期的一样。
Visual Studio 2008 优化提示
首先记住你可以复位所有的Visual Studio 设置 (Tools->Import and Export Settings->Reset All Settings)
Visual Studio 优化提示:
关闭 F1. (Tools->Options->Environment->Keyboard) (这样避免按ESC,不小心按到F1)
关闭 "Animate environment tools" (Tools->Options->Environment->General)
关闭 Start Page (Tools->Options->Environment->Startup)
关闭 "Track Active Item in Solution Explorer" (Projects and Solutions).
关闭 Navigation Bar (Tools->Options->Text Editor->C#)
设置 "AutoToolboxPopulate" 为 false (Tools->Options->Windows Forms Designer).
关闭追踪变化. (Tools->Options->Text Editor->Track changes)
(Ctrl+K, Ctrl+D) 重新格式化你的代码.
Ctrl+k+c 注释块, Ctrl+k+u 取消注释
在快捷方式后加 /nosplash,将加快VisualStudio启动速度,如“C:/Program Files/Microsoft Visual Studio 9.0/Common7/IDE/devenv.exe” /nosplash
CTRL+W,A 打开命令开窗口,可以打开文件.....
编译dll
wsdl /out:d:/SendPayResult.cs d:/xx1.wsdl
csc /target:library /out:d:/xx1.dll d:/xx1.cs