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

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

开发的新的控件,一般继承自Control,重写OnPaint方法;还要自己写添加事件、处理消息等等。这样的控件,对应你的业务可以达到很好的效果,功能最灵活。同时对开发人员要求也最高,一般要了解图形绘制GDI+以及API的一些知识。比如,我们需要一个类似Label的控件,但是不需要Label那么多的属性和方法。那么就自己开发一个类似Label的自定义控件。
如下代码:直接继承自Control,其它代码会自动生成好。
[csharp] view plaincopyprint
[ToolboxItem(true)]
public partial class CustomClassifyLabelItem : Control
{
private Color mColorOut = ColorFromArgb(255, 137, 37);

private StringFormat format;

private Color textColor;

private Font strFormat = new Font("宋体", 9F, FontStyleRegular, GraphicsUnitPoint, ((byte)(134)));

public StringFormat Format
{
get
{
if (format == null)
{
format = new StringFormat();

formatAlignment = StringAlignmentCenter;

formatLineAlignment = StringAlignmentCenter;

formatFormatFlags = StringFormatFlagsNoWrap;

formatTrimming = StringTrimmingEllipsisCharacter;
}

return format;
}
}

public Color TextColor
{
get
{
{
textColor = ColorFromArgb(22, 95, 162);
}

return textColor;
}
}

public CustomClassifyLabelItem()
{
InitializeComponent();

thisMouseEnter += new EventHandler(UCSelectClassifyItem_MouseEnter);

thisMouseLeave += new EventHandler(UCSelectClassifyItem_MouseLeave);
}

void UCSelectClassifyItem_MouseLeave(object sender, EventArgs e)
{
strFormat = new Font("宋体", 9F, FontStyleRegular, GraphicsUnitPoint, ((byte)(134)));

Invalidate();
}

void UCSelectClassifyItem_MouseEnter(object sender, EventArgs e)
{
strFormat = new Font("宋体", 12F, FontStyleRegular, GraphicsUnitPoint, ((byte)(134)));

Invalidate();
}

protected override void OnPaint(PaintEventArgs pe)
{
baseOnPaint(pe);

Graphics graphics = peGraphics;

using (SolidBrush b = new SolidBrush(TextColor))
{
graphicsDrawString(thisText, strFormat, b, new Rectangle(0, 0, thisWidth, thisHeight), Format);
}

graphicsDispose();
}
}

12
2可见
3Value
4Enabled
5Enabled
6RecordSource
7ColumnCount
8菜单级,普通
9Init
10Group by
11定义,is null
12向导
13delete all
14Updata
15投影

好象不成。不过你可以用控件。我印象中,label是透明的。你做一个有立体感的放在上面,看起来象一个按钮。然后按下后就换,变成按下去的样子。
这样你的按钮想改成什么形状都可以。只是激活的范围还是方块的。


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

原文地址: http://outofmemory.cn/yw/12704105.html

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

发表评论

登录后才能评论

评论列表(0条)

保存