最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用重繪項(xiàng)美化WinForm的控件

 更新時(shí)間:2017年10月20日 08:37:37   作者:張果  
這篇文章主要為大家詳細(xì)介紹了如何使用重繪項(xiàng)美化WinForm中控件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

如果你覺(jué)得項(xiàng)目中的ComboBox、ListBox或其它的Winforms控件不能滿(mǎn)足你的顯示要求,包括窗體在內(nèi)很多控件都支持重繪修改顯示樣式。下面的示例完成對(duì)ComBox數(shù)據(jù)項(xiàng)的重繪,希望能起到拋磚引玉的作用。

顯示源代碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace SimpleDemo
{
 public partial class frmDrawItem : Form
 {
  public frmDrawItem()
  {
   InitializeComponent();
   //指定繪制模式,這項(xiàng)必須指定為,OwnerDrawFixed,OwnerDrawVariable
   //Normal 由操作系統(tǒng)繪制,并且元素大小都相等。 
   //OwnerDrawFixed 手動(dòng)繪制的,并且元素大小都相等。 
   //OwnerDrawVariable 手動(dòng)繪制,元素大小可能不相等。 
   comboBox2.DrawMode = DrawMode.OwnerDrawFixed;
  }

  //重繪項(xiàng)事件
  private void comboBox2_DrawItem(object sender, DrawItemEventArgs e)
  {
   //獲取要在其上繪制項(xiàng)的圖形表面
   Graphics g = e.Graphics;
   //獲取表示所繪制項(xiàng)的邊界的矩形
   System.Drawing.Rectangle rect = e.Bounds;
   //定義要繪制到控件中的圖標(biāo)圖像
   Image ico = Image.FromFile("head.png");
   //定義字體對(duì)象
   System.Drawing.Font font = new System.Drawing.Font(new FontFamily("宋體"), 12);
   if (e.Index >= 0)
   {
    //獲得當(dāng)前Item的文本
    string tempString = comboBox2.Items[e.Index].ToString();
    //如果當(dāng)前項(xiàng)是沒(méi)有狀態(tài)的普通項(xiàng)
    if (e.State == DrawItemState.None)
    {
     //在當(dāng)前項(xiàng)圖形表面上劃一個(gè)矩形
     g.FillRectangle(new SolidBrush(Color.FromArgb(200, 230, 255)), rect);
     //在當(dāng)前項(xiàng)圖形表面上劃上圖標(biāo)
     g.DrawImage(ico, new Point(rect.Left, rect.Top));
     //在當(dāng)前項(xiàng)圖形表面上劃上當(dāng)前Item的文本
     g.DrawString(tempString, font, new SolidBrush(Color.Black), rect.Left + ico.Size.Width, rect.Top);
     //將繪制聚焦框
     e.DrawFocusRectangle();
    }
    else
    {
     e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue), rect);
     g.DrawImage(ico, new Point(rect.Left, rect.Top));
     g.DrawString(tempString, font, new SolidBrush(Color.Black), rect.Left + ico.Size.Width, rect.Top);
     e.DrawFocusRectangle();
    }
   }
  }

 }
}


總結(jié):如果僅僅是美化可以選擇使用皮膚控件,但使用重繪更加靈活,可以滿(mǎn)足一些功能上的需求。另外不同的控件還有一些不同重繪事件,可以參照MSDN。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • .NET/C#如何使用反射注冊(cè)事件詳解

    .NET/C#如何使用反射注冊(cè)事件詳解

    反射是.NET中的重要機(jī)制,下面這篇文章主要給大家介紹了關(guān)于.NET/C#如何使用反射注冊(cè)事件的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-09-09
  • 判斷WebBrowser瀏覽器網(wǎng)頁(yè)加載完成的處理方法

    判斷WebBrowser瀏覽器網(wǎng)頁(yè)加載完成的處理方法

    .net 中通過(guò) SqlConnection 連接 sql server,我們會(huì)發(fā)現(xiàn)第一次連接時(shí)總是很耗時(shí),但后面連接就很快,這個(gè)其實(shí)和SqlConnection 的連接池機(jī)制有關(guān),正確的理解這個(gè)連接池機(jī)制,有助于我們編寫(xiě)高效的數(shù)據(jù)庫(kù)應(yīng)用程序。
    2013-04-04
  • 解析Asp.net Core中使用Session的方法

    解析Asp.net Core中使用Session的方法

    Session 是保存用戶(hù)和 Web 應(yīng)用的會(huì)話(huà)狀態(tài)的一種方法,ASP.NET Core 提供了一個(gè)用于管理會(huì)話(huà)狀態(tài)的中間件,本篇文章主要介紹了Asp.net Core中使用Session ,有興趣的可以了解一下、
    2017-01-01
  • 使用 Salt + Hash 將密碼加密后再存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)

    使用 Salt + Hash 將密碼加密后再存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)

    如果你需要保存密碼(比如網(wǎng)站用戶(hù)的密碼),你要考慮如何保護(hù)這些密碼數(shù)據(jù),象下面那樣直接將密碼寫(xiě)入數(shù)據(jù)庫(kù)中是極不安全的,因?yàn)槿魏慰梢源蜷_(kāi)數(shù)據(jù)庫(kù)的人,都將可以直接看到這些密碼
    2012-12-12
  • asp.net自定義分頁(yè)控件示例

    asp.net自定義分頁(yè)控件示例

    這篇文章主要介紹了asp.net自定義分頁(yè)控件示例,大家參考使用吧
    2014-01-01
  • ASP.NET從字符串中查找字符出現(xiàn)次數(shù)的具體實(shí)現(xiàn)方法

    ASP.NET從字符串中查找字符出現(xiàn)次數(shù)的具體實(shí)現(xiàn)方法

    今天在一場(chǎng)“特殊的討論”中引入了一個(gè)問(wèn)題,如何在C#求出字符串中某字符的出現(xiàn)次數(shù),比如求“ADSFGEHERGASDF”中“A”出現(xiàn)的次數(shù)
    2013-11-11
  • ASP.NET如何獲取兩個(gè)日期之間的天數(shù)

    ASP.NET如何獲取兩個(gè)日期之間的天數(shù)

    這篇文章主要介紹了ASP.NET獲取兩個(gè)日期之間的天數(shù)方法,需要的朋友可以參考下
    2014-03-03
  • gridview自動(dòng)排序示例分享

    gridview自動(dòng)排序示例分享

    GridView自帶了數(shù)據(jù)排序功能。在設(shè)計(jì)視圖下,只能對(duì)GridView的排序數(shù)據(jù)列和排序方向進(jìn)行靜態(tài)設(shè)置。在后臺(tái)程序中,則需要用Attributes方式對(duì)GridView的這兩個(gè)屬性進(jìn)行動(dòng)態(tài)設(shè)置
    2014-01-01
  • asp.net上傳文件到數(shù)據(jù)庫(kù)的解決方案

    asp.net上傳文件到數(shù)據(jù)庫(kù)的解決方案

    這篇文章主要介紹了ASP.NET上傳文件到數(shù)據(jù)庫(kù),先從文字上了解一下上傳文件到數(shù)據(jù)庫(kù)的具體步驟,再?gòu)拇a上來(lái)實(shí)現(xiàn),需要的朋友可以參考下
    2015-09-09
  • asp.net中的GridView分頁(yè)問(wèn)題

    asp.net中的GridView分頁(yè)問(wèn)題

    這篇文章主要介紹了asp.net中的GridView分頁(yè)問(wèn)題,實(shí)例講述了采用GridView分頁(yè)出現(xiàn)的問(wèn)題及對(duì)應(yīng)的解決方案,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11

最新評(píng)論

兰西县| 许昌县| 阜康市| 根河市| 兴山县| 衡山县| 确山县| 安乡县| 永康市| 鹿泉市| 伊宁市| 米脂县| 利川市| 锡林浩特市| 遵化市| 钦州市| 永年县| 平果县| 九台市| 益阳市| 昌图县| 溆浦县| 石泉县| 湖州市| 信阳市| 凤庆县| 万全县| 北宁市| 寿光市| 耒阳市| 都匀市| 泸水县| 屏东县| 康平县| 辽源市| 虎林市| 扶余县| 孟州市| 阜南县| 泾阳县| 黑水县|