2004.7.15 [C#学习记录]使用C#编写一个自定义控件(高手莫入,哈哈)

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

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;

}

}

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航