在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属性相关推荐

  1. Android Studio中Button等控件的Text属性英文默认大写的解决方法

    在 Android Studio 中 xml 里面添加一个 Button.EditText 等控件后,它的 Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是androi ...

  2. WinForm下ListBox控件“设置DataSource属性后无法修改项集合”的问题解决方案

    在做winform程序开发时,我用DataSource绑定了ListBox中的Item,但是当我进行一些添加.删除操作时就报了这个错"设置DataSource属性后无法修改项集合" ...

  3. android在代码中利用Spinner控件设置联动地区的解决办法

    需求就是地区选择可以弹出来,因为百度地图一般是获取当前的地址,我们需要的是他的家庭地址  所以才有了三级Spinner解决 地区问题  就是当用户填写了之后,下次再修改,你要给他显示出来上次填写的值, ...

  4. EXT中给时间控件设置默认值

    第一种:设置几年前或几年后 +表示几年后 -表示几年前 value:new Date().add(Date.YEAR,+7), 页面效果: 第二种:设置几月前或几月后 +表示几月后 -表示几月前 va ...

  5. 格式化显示在Label控件中的金额格式文本 (2)

    通过Label控件的Text属性可以设置控件内显示的文本,而通过对象的ToString方法可以格式化字符串显示的格式.本实例设定在Label控件中金额的显示格式,运行结果如图1所示. <?XML ...

  6. Label控件属性AssociatedControlID

    可以使用Label控件来标注一个HTML表单字段.Label控件拥有属性AssociatedControlID,可以设置此属性来指向表示表单字段的ASP.NET控件. 例如,代码清单2-3中的页面含有 ...

  7. ASP.NET AJAX入门系列(11):在多个UpdatePanle中使用Timer控件

    本文将使用Timer控件更新两个UpdatePanel控件,Timer控件将放在UpdatePanel控件的外面,并将它配置为UpdatePanel的触发器,翻译自官方文档.<?XML:NAME ...

  8. Python Tkinter教程(二)——Label控件、Frame控件、Button控件的完整参数和所有方法及详细用法

    >>>[上节回顾:tkinter编程基本步骤.窗口基本属性及Toplevel控件的使用]<<< Python Tkinter教程(二)         这篇博客将详 ...

  9. VS2010下ocx开发:(2)在C#程序中调用ocx控件

    在本文中,给出一个C#示例程序,调用上一篇博文中创建的MultiplyDemo.ocx控件.注意需要保证该控件已经注册过. 启动Visual Studio 2010,使用C#创建一个Windows窗体 ...

  10. 如何 修改服务器控件的text,设置TextBox控件的TextMode属性

    我想在程式代碼中將TextBox控件的TextMode属性设置為Password,寫成TextBox1.TextMode=MultiLine和TextBox1.TextMode="Multi ...

最新文章

  1. js中的apply()、call() 和 bind()
  2. JAVA-JSP内置对象之out对象进行页面输出
  3. Android传感器开发详解
  4. MongoDB与python 交互
  5. 流浪不是我的初衷 ... ...
  6. WebAPI 和 WebService的区别
  7. 浅析如何掌握了解SQL Server的锁机制
  8. mysql5.7zib配置_mysql-5.7.13 解压版安装教程
  9. jquery on() 转
  10. cssrem转换工具_微信小程序开发-rem转换rpx小工具
  11. png在ai转为路径_png格式转为ai格式
  12. 什么是数据分析,我们为什么要做数据分析?
  13. access汇总含义_access的用法总结大全
  14. Android 8.0 蓝牙唤醒 Ble 锁屏 保活 后台 持续扫描 进程拉活 自动唤醒
  15. python+opencv遇到的错误(长期更新)
  16. 什么是项目管理?范围、时间、成本、质量
  17. Json的FastJson与Jackson
  18. MATLAB中randi函数的用法
  19. 023 TP5中的whereOr()
  20. 2014款宝马I8插电式混合动力跑车将成为“蓝光”前灯的首秀:这是这一技术首次在欧洲汽车市场正式使用。

热门文章

  1. binlog日志整理
  2. flink sink jdbc没有数据_一套 SQL 搞定数据仓库?Flink 有了新尝试
  3. 用c#转换word或excel文档为html文件,C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例...
  4. 蒙文字体怎么安装_蒙文搜索APP内置键盘布局图
  5. 主题模型(Topic Model)与LDA算法
  6. js中的$符号代表什么
  7. spring boot全局异常捕捉
  8. 关于用data开头属性的取值
  9. 结构化和面向对象语言的区别
  10. html5 命运之轮生产