2004.7.15 [C#学习记录]使用C#编写一个自定义控件
2004-07-15 22:33
871 查看
using System;
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace WindowsControlLibrary1
{
///
/// UserControl1 的摘要说明。
///
public class UserControl1 : System.Windows.Forms.UserControl
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.Container components = null;
/// 私有域
private string MyText;
//存储关联的事件处理方法;
private EventHandler OnMyTextChanged;
public UserControl1()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent();
// TODO: 在 InitializeComponent 调用后添加任何初始化
MyText="Static Control";
OnMyTextChanged=null;
}
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if( components != null )
components.Dispose();
}
base.Dispose( disposing );
}
#region Component Designer generated code
///
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
///
private void InitializeComponent()
{
//
// UserControl1
//
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(248, 128);
this.Load += new System.EventHandler(this.UserControl1_Load);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.UserControl1_Paint);
}
#endregion
private void UserControl1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
SizeF textSize=e.Graphics.MeasureString(MyText,Font);
float xPos=(ClientRectangle.Width/2)-(textSize.Width/2);
float yPos=(ClientRectangle.Height/2)-(textSize.Height/2);
e.Graphics.DrawString(MyText,Font,new SolidBrush(Color.Black),xPos,yPos);
}
private void UserControl1_Load(object sender, System.EventArgs e)
{
}
//公开属性
public String ControlText
{
get
{
return MyText;
}
set
{
MyText=value;
//重画
Invalidate();
//如果关联了事件处理方法,则调用该方法
if(OnMyTextChanged!=null)
{
OnMyTextChanged.Invoke(this,EventArgs.Empty);
}
}
}
//声明了一个公开事件
public event EventHandler MyTextChanged
{
add
{
OnMyTextChanged+=value;
}
remove
{
OnMyTextChanged=value;
}
}
}
}
using System.Collections;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Windows.Forms;
namespace WindowsControlLibrary1
{
///
/// UserControl1 的摘要说明。
///
public class UserControl1 : System.Windows.Forms.UserControl
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.Container components = null;
/// 私有域
private string MyText;
//存储关联的事件处理方法;
private EventHandler OnMyTextChanged;
public UserControl1()
{
// 该调用是 Windows.Forms 窗体设计器所必需的。
InitializeComponent();
// TODO: 在 InitializeComponent 调用后添加任何初始化
MyText="Static Control";
OnMyTextChanged=null;
}
///
/// 清理所有正在使用的资源。
///
protected override void Dispose( bool disposing )
{
if( disposing )
{
if( components != null )
components.Dispose();
}
base.Dispose( disposing );
}
#region Component Designer generated code
///
/// 设计器支持所需的方法 - 不要使用代码编辑器
/// 修改此方法的内容。
///
private void InitializeComponent()
{
//
// UserControl1
//
this.Name = "UserControl1";
this.Size = new System.Drawing.Size(248, 128);
this.Load += new System.EventHandler(this.UserControl1_Load);
this.Paint += new System.Windows.Forms.PaintEventHandler(this.UserControl1_Paint);
}
#endregion
private void UserControl1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
SizeF textSize=e.Graphics.MeasureString(MyText,Font);
float xPos=(ClientRectangle.Width/2)-(textSize.Width/2);
float yPos=(ClientRectangle.Height/2)-(textSize.Height/2);
e.Graphics.DrawString(MyText,Font,new SolidBrush(Color.Black),xPos,yPos);
}
private void UserControl1_Load(object sender, System.EventArgs e)
{
}
//公开属性
public String ControlText
{
get
{
return MyText;
}
set
{
MyText=value;
//重画
Invalidate();
//如果关联了事件处理方法,则调用该方法
if(OnMyTextChanged!=null)
{
OnMyTextChanged.Invoke(this,EventArgs.Empty);
}
}
}
//声明了一个公开事件
public event EventHandler MyTextChanged
{
add
{
OnMyTextChanged+=value;
}
remove
{
OnMyTextChanged=value;
}
}
}
}
相关文章推荐
- 2004.7.15 [C#学习记录]使用C#编写一个自定义控件(高
- 菜鸟C#学习记录:简单使用一个ListView控件
- 如何使用一个不错的图表组件WebChart(免费) 用c#编写
- 使用C#编写一个用于客户端打印的ActiveX控件(1)
- C#中ArrayList 与 string、string[]数组 的转换 (转学习:今天做项目时遇到一个arrylist转换问题,做记录)
- java学习笔记之使用MyEclipse编写一个简单的登陆界(一)
- 使用C#编写一个计时器(OK)
- Servlet学习笔记_03_使用servlet编写一个简单的helloworld程序
- CSharpGL(34)以从零编写一个KleinBottle渲染器为例学习如何使用CSharpGL
- 编写一个C#Windows服务程序,定时从数据库中拿出记录发送邮件。
- 使用C#编写的一个定时关机程序
- 使用C#编写的一个定时关机程序(我也不记得是谁写的了,偶翻出来了就贴了)
- 使用C#编写的一个定时关机程序
- 使用C#来编写一个异步的Socket服务器
- 使用C#编写的一个定时关机程序
- 使用C#编写的一个定时关机程序
- 使用C#编写的一个定时关机程序
- 使用C#编写一个计时器-.NET教程,C#语言
- 第一次使用linux并编写了一个dump mysql的程序,记录下简单的步骤
- 使用C#编写一个计算器(OK)