2004.7.15 [C#学习记录]使用C#编写一个自定义控件

原创 2004年07月15日 22:33:00
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;
}
}

}
}

2004.7.15 [C#学习记录]使用C#编写一个自定义控件(高

  • zgqtxwd
  • zgqtxwd
  • 2008年04月24日 08:43
  • 125

《C#中自定义控件并在Form中进行调用》

C#自定义控件并在Form中进行调用由于项目的原因,要使用C#来实现一个演示系统,具体功能为:上位机使用TCP/IP协议通过网口发送数据,FPGA从网口抓取数据并进行一些处理,最后,将处理后的数据通过...
  • u010412719
  • u010412719
  • 2016年06月06日 17:16
  • 1745

C#如何调用自定义控件(附图)

刚接触c#,项目需要调用第三方的自定义控件,在网上一直没有找到合适的答案,决定自己研究在vs2008中选择工具箱选中控件ColorHatch.dll,直接拖拽到常规选项卡下面...
  • ami121
  • ami121
  • 2010年06月22日 16:20
  • 1214

Vs自定义控件设计第一例(直线控件的设计)

一、杨老师是个热情的人 我们的项目开源有一段时间了,我一直以为我有一个很不错的胸怀把自己花了很多精力做出来的项目贡献出来了,我以为同学们会很开心,会像“一个饥饿的人看到面包”一样的扑到了我的项目代码...
  • zzcaism
  • zzcaism
  • 2014年10月15日 12:54
  • 1822

C#开发之自定义控件的简单使用

1.开发自定义控件 自定义控件在开发中算常用的技术,因为在解决实际问题时往往.NET Framework提供的控件不能满足所有的需求,还好可以根据.NET Framework提供的基础控件组合扩展成...
  • whuarui2010
  • whuarui2010
  • 2012年10月12日 10:34
  • 41182

1.创建一个自定义控件

1.创建一个自定义控件 原文请看我个人博客:http://clzf.co/blog.php?id=1 这篇文章是 C#自定义控件开发 系列的第一篇文章 其实如果你看过[GDI+程序设计]这本书的话 我...
  • crystal_lz
  • crystal_lz
  • 2014年03月28日 19:49
  • 6509

C# 自定义控件的实现

http://www.cnblogs.com/wuhuacong/p/3968544.html Winform开发中常见界面的DevExpress处理操作 我们在开发Winform程序的时...
  • wang463584281
  • wang463584281
  • 2016年02月23日 09:13
  • 2954

C# 自定义控件制作和使用实例

C# 自定义用户控件xiongxuanwen 上篇:控件制作 本例是制作一个简单的自定义控件,然后用一个简单的测试程序,对于初学者来说,本例子比较简单,只能起到抛石引玉的效果。我也是在学习当中,今后会...
  • xiongxuanwen
  • xiongxuanwen
  • 2008年07月02日 14:10
  • 19257

利用自定义控件实现TextBox

本系列文章中“例程1”和“例程2”讲述了利用Visual Studio.NET2003中已有的WEB自定义控件,通过继承或复合一些简单控件生成自己需要的自定义控件。这样的控件制作比较简单,但是它的执行...
  • cmoremore
  • cmoremore
  • 2004年12月01日 10:29
  • 1102

MX记录获取组件的编写

一、MX记录的应用         Email是迄今为止互联网上最成功的应用了,试想一个触网者如果没有属于自己的Email邮箱,那将难以称作“网民”。互联网网上同Email相关的应用也增多。我们编写网...
  • shanhe
  • shanhe
  • 2003年03月07日 08:43
  • 1992
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:2004.7.15 [C#学习记录]使用C#编写一个自定义控件
举报原因:
原因补充:

(最多只允许输入30个字)