[置顶] C#中给Label控件设置BackgroundImage属性
在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);
转载于:https://www.cnblogs.com/kevinGao/archive/2011/12/02/2776056.html
[置顶] C#中给Label控件设置BackgroundImage属性相关推荐
- Android Studio中Button等控件的Text属性英文默认大写的解决方法
在 Android Studio 中 xml 里面添加一个 Button.EditText 等控件后,它的 Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是androi ...
- WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案
在做winform程序开发时,我用DataSource绑定了ListBox中的Item,但是当我进行一些添加.删除操作时就报了这个错"设置DataSource属性后无法修改项集合" ...
- android在代码中利用Spinner控件设置联动地区的解决办法
需求就是地区选择可以弹出来,因为百度地图一般是获取当前的地址,我们需要的是他的家庭地址 所以才有了三级Spinner解决 地区问题 就是当用户填写了之后,下次再修改,你要给他显示出来上次填写的值, ...
- EXT中给时间控件设置默认值
第一种:设置几年前或几年后 +表示几年后 -表示几年前 value:new Date().add(Date.YEAR,+7), 页面效果: 第二种:设置几月前或几月后 +表示几月后 -表示几月前 va ...
- 格式化显示在Label控件中的金额格式文本 (2)
通过Label控件的Text属性可以设置控件内显示的文本,而通过对象的ToString方法可以格式化字符串显示的格式.本实例设定在Label控件中金额的显示格式,运行结果如图1所示. <?XML ...
- Label控件属性AssociatedControlID
可以使用Label控件来标注一个HTML表单字段.Label控件拥有属性AssociatedControlID,可以设置此属性来指向表示表单字段的ASP.NET控件. 例如,代码清单2-3中的页面含有 ...
- ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件
本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档.<?XML:NAME ...
- Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法
>>>[上节回顾:tkinter编程基本步骤.窗口基本属性及Toplevel控件的使用]<<< Python Tkinter教程(二) 这篇博客将详 ...
- VS2010下ocx开发:(2)在C#程序中调用ocx控件
在本文中,给出一个C#示例程序,调用上一篇博文中创建的MultiplyDemo.ocx控件.注意需要保证该控件已经注册过. 启动Visual Studio 2010,使用C#创建一个Windows窗体 ...
- 如何 修改服务器控件的text,设置TextBox控件的TextMode属性
我想在程式代碼中將TextBox控件的TextMode属性设置為Password,寫成TextBox1.TextMode=MultiLine和TextBox1.TextMode="Multi ...
最新文章
- js中的apply()、call() 和 bind()
- JAVA-JSP内置对象之out对象进行页面输出
- Android传感器开发详解
- MongoDB与python 交互
- 流浪不是我的初衷 ... ...
- WebAPI 和 WebService的区别
- 浅析如何掌握了解SQL Server的锁机制
- mysql5.7zib配置_mysql-5.7.13 解压版安装教程
- jquery on() 转
- cssrem转换工具_微信小程序开发-rem转换rpx小工具
- png在ai转为路径_png格式转为ai格式
- 什么是数据分析,我们为什么要做数据分析?
- access汇总含义_access的用法总结大全
- Android 8.0 蓝牙唤醒 Ble 锁屏 保活 后台 持续扫描 进程拉活 自动唤醒
- python+opencv遇到的错误(长期更新)
- 什么是项目管理?范围、时间、成本、质量
- Json的FastJson与Jackson
- MATLAB中randi函数的用法
- 023 TP5中的whereOr()
- 2014款宝马I8插电式混合动力跑车将成为“蓝光”前灯的首秀:这是这一技术首次在欧洲汽车市场正式使用。