在C#中,默认情况下是无法给Label设置BackgroundImage属性的,只有Image这个属性,但是在某些特殊的情况下我们又需要设置Label的BackgroundImage属性,因此我们必须对label控件加以改造。Label是继承自Control类的,而Control类是有BackgroundImage这个属性的,Label也有这个属性,只是在VS中我们无法看到而已,微软做了下处理,不希望我们在属性窗口中能够直接设置它。实际上它有很多属性在属性面板中没有显示而已,如下图示:
因此我们可以对Label控件代码稍加改写即可,代码如下图所示,我们写个控件继承Label,重写它的2个方法即可。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Diagnostics;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Drawing;
namespace Tempus.Component
{
public partial class LabelEx2 : Label
{
public LabelEx2()
{
}
protected override void OnPaintBackground(PaintEventArgs e)
{
return;
}
protected override void OnPaint(PaintEventArgs e)
{
//判断BackGroundImage是否为空
if (this.BackgroundImage != null)
{
e.Graphics.DrawImage(this.BackgroundImage, new System.Drawing.Rectangle(0, 0, this.Width, this.Height),
this.Location.X, this.Location.Y, this.Width, this.Height,
System.Drawing.GraphicsUnit.Pixel);
}
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
SolidBrush drawBrush = new SolidBrush(this.ForeColor);
e.Graphics.DrawString(this.Text, this.Font, drawBrush, new System.Drawing.Rectangle(0, 0, this.Width, this.Height));
//base.OnPaint(e);
}
}
}
调用时设置这个Label控件的BackgroundImage属性即可,Demo代码如下:
string strWineDetail1 = Application.StartupPath + "\\Resources\\" + "WineDetail1.jpg";
lblWineInfo.BackgroundImage = Image.FromFile(strWineDetail1);
分享到:
相关推荐
C#下重写的label控件(带图片和文字、圆角),有移入、按下、挪开这三种视觉样式,在VS2008下调试成功。有兴趣的大哥可以把它生成自定义控件,并且自行添加好属性。倘若有需要,我也可以帮忙。谢谢~
C#135使Label控件显示出多行文字 源代码
C#创建可拖动的动态label控件
通过重新绘制label控件的边框及背景色,实现label控件原有的BorderStyle属性。
C# 透明 背景 的垂直 Label控件C# 透明 背景 的垂直 Label控件C# 透明 背景 的垂直 Label控件C# 透明 背景 的垂直 Label控件C# 透明 背景 的垂直 Label控件
最完整的控件属性说明 对开发C#绝对有帮助 C#控件及常用设计整理 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 (2) WindowState属性: 用来获取...
C# 透明控件可以当Label控件使用,也可以改成透明控件Panel。 如果不值8分,你啪我。
c#常用控件的属性方法, 1、窗体 2、Label 控件 3、TextBox 控件 4、RichTextBox控件 5、NumericUpDown 控件 6、Button 控件 7、GroupBox 控件 8、RadioButton控件 9、CheckBox 控件 10、ListBox 控件 11、...
在C#中将label标签的背景设为透明 在C#中将label标签的背景设为透明
C#控件大全 C#属性大全 C#事件大全 C#控件及常用设计整 1、窗体 1 2、Label 控件 3 3、TextBox 控件 4 4、RichTextBox控件 5 5、NumericUpDown 控件 7 6、Button 控件 7 7、GroupBox 控件 7 8、RadioButton控件 8 9...
摘要:C#源码,控件类库,Label控件 C#动态生成Label控件并拖动位置,测试时你可以先点击“动态生成Label”按钮,然后会生成一个带文字的标签,这个标签是可以拖动改变位置的,并显示出最后停留位置的坐标信息。 运行...
本例中,为WinForm提供方法,批量设置其界面上所有的控件为不可编辑状态 方法: SetReadOnly( Control.ControlCollection... List参数,该列表内的类型的控件均不修改其可编辑属性,如Label控件一般不设置可编辑性。
c# label的内容显示不全,需要设置如下属性即可: 1、将Lable的font属性的字体改成宋体... 您可能感兴趣的文章:效控制C#中label输出文字的长度,自动换行C#利用Label标签控件模拟窗体标题的移动及窗体颜色不断变换效果
属性控件的使用,C#中使用属性控件添加属性窗口。。
C# 自定义控件的属性 添加自定义控件的事件
C# 写的三方label 源码
6种效果的艺术字控件,直接编译使用.
以前做项目需要实现在文本类控件中加入超链接文字段的功能,在网上查了不少资料基本没有找到比较理想的实现方法,最后无奈只好自己实现了...
C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习C#控件学习
本文举例介绍了C#实现控件数组的方法,青睐于以前VB6.0控件数组的朋友可以下来看下哈。