C#怎么写一个圆形或者椭圆型的自定义控件

C#怎么写一个圆形或者椭圆型的自定义控件,第1张

开发的新的控件,一般继承自Control,重写OnPaint方法;还要自己写添加事件、处理消息等等。这样的控件,对应你的业务可以达到很好的效果,功能最灵活。同时对开发人员要求也最高,一般要了解图形绘制GDI+以及API的一些知识。比如,我们需要一个类似Label的控件,但是不需要Label那么多的属性和方法。那么就自己开发一个类似Label的自定义控件。

如下代码:直接继承自Control,其它代码会自动生成好。

[csharp] view plaincopyprint?

[ToolboxItem(true)]

public partial class CustomClassifyLabelItem : Control

{

private Color mColorOut = Color.FromArgb(255, 137, 37)

private StringFormat format

private Color textColor

private Font strFormat = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134)))

public StringFormat Format

{

get

{

if (format == null)

{

format = new StringFormat()

format.Alignment = StringAlignment.Center

format.LineAlignment = StringAlignment.Center

format.FormatFlags = StringFormatFlags.NoWrap

format.Trimming = StringTrimming.EllipsisCharacter

}

return format

}

}

public Color TextColor

{

get

{

{

textColor = Color.FromArgb(22, 95, 162)

}

return textColor

}

}

public CustomClassifyLabelItem()

{

InitializeComponent()

this.MouseEnter += new EventHandler(UCSelectClassifyItem_MouseEnter)

this.MouseLeave += new EventHandler(UCSelectClassifyItem_MouseLeave)

}

void UCSelectClassifyItem_MouseLeave(object sender, EventArgs e)

{

strFormat = new Font("宋体", 9F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134)))

Invalidate()

}

void UCSelectClassifyItem_MouseEnter(object sender, EventArgs e)

{

strFormat = new Font("宋体", 12F, FontStyle.Regular, GraphicsUnit.Point, ((byte)(134)))

Invalidate()

}

protected override void OnPaint(PaintEventArgs pe)

{

base.OnPaint(pe)

Graphics graphics = pe.Graphics

using (SolidBrush b = new SolidBrush(TextColor))

{

graphics.DrawString(this.Text, strFormat, b, new Rectangle(0, 0, this.Width, this.Height), Format)

}

graphics.Dispose()

}

}

C,只是一种计算机语言,就像你会说普通话,或会说英语;

语言本身没有意义,你如何用它才是关键,你讲的故事是否动听,不是因为中文动听,或是英文动听,而你的表达在起作用,是你语言功底问题。

你所看的书中,讲到运算方法,可以理解为,我们语言中的语法,它是告诉你,如何把一个问题讲解清楚,并运用得当。

如果,你想用C语言编写一个程序,有可视化的界面,有按钮,有输入框等等;

需要借助一些开发工具,如vc等;

vc只是一个工具,你可以用它来编写程序,但是,如果你想让它听你的话,你就要学会它能理解的语言,即C语言。

C是语言,它本身没有功能,像任何一种语言一样,只是提供交流,计算机语言就是供你与计算机交流的语言。

VC是开发工具,“欲先工其事,必先利其器”,工具的学习很重要,但最重的是,也是熟练使用工具的前提,你能与它进行“沟通”,学会它的“语言”。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11472006.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存