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

使用重繪項美化WinForm的控件

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

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

顯示源代碼

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();
   //指定繪制模式,這項必須指定為,OwnerDrawFixed,OwnerDrawVariable
   //Normal 由操作系統(tǒng)繪制,并且元素大小都相等。 
   //OwnerDrawFixed 手動繪制的,并且元素大小都相等。 
   //OwnerDrawVariable 手動繪制,元素大小可能不相等。 
   comboBox2.DrawMode = DrawMode.OwnerDrawFixed;
  }

  //重繪項事件
  private void comboBox2_DrawItem(object sender, DrawItemEventArgs e)
  {
   //獲取要在其上繪制項的圖形表面
   Graphics g = e.Graphics;
   //獲取表示所繪制項的邊界的矩形
   System.Drawing.Rectangle rect = e.Bounds;
   //定義要繪制到控件中的圖標圖像
   Image ico = Image.FromFile("head.png");
   //定義字體對象
   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)前項是沒有狀態(tài)的普通項
    if (e.State == DrawItemState.None)
    {
     //在當(dāng)前項圖形表面上劃一個矩形
     g.FillRectangle(new SolidBrush(Color.FromArgb(200, 230, 255)), rect);
     //在當(dāng)前項圖形表面上劃上圖標
     g.DrawImage(ico, new Point(rect.Left, rect.Top));
     //在當(dā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é):如果僅僅是美化可以選擇使用皮膚控件,但使用重繪更加靈活,可以滿足一些功能上的需求。另外不同的控件還有一些不同重繪事件,可以參照MSDN。

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

相關(guān)文章

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

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

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

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

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

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

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

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

    如果你需要保存密碼(比如網(wǎng)站用戶的密碼),你要考慮如何保護這些密碼數(shù)據(jù),象下面那樣直接將密碼寫入數(shù)據(jù)庫中是極不安全的,因為任何可以打開數(shù)據(jù)庫的人,都將可以直接看到這些密碼
    2012-12-12
  • asp.net自定義分頁控件示例

    asp.net自定義分頁控件示例

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

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

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

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

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

    gridview自動排序示例分享

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

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

    這篇文章主要介紹了ASP.NET上傳文件到數(shù)據(jù)庫,先從文字上了解一下上傳文件到數(shù)據(jù)庫的具體步驟,再從代碼上來實現(xiàn),需要的朋友可以參考下
    2015-09-09
  • asp.net中的GridView分頁問題

    asp.net中的GridView分頁問題

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

最新評論

凤台县| 民权县| 肥城市| 山东| 望江县| 太康县| 蓝山县| 东乡族自治县| 定安县| 民和| 封丘县| 韶关市| 汕头市| 柘荣县| 温宿县| 固安县| 周至县| 老河口市| 崇州市| 洞口县| 四川省| 三河市| 高要市| 杂多县| 丹凤县| 陈巴尔虎旗| 齐齐哈尔市| 昌乐县| 蒲城县| 小金县| 苏尼特右旗| 华宁县| 桑植县| 皋兰县| 海伦市| 夏津县| 苏尼特右旗| 丹棱县| 土默特左旗| 宜昌市| 卓尼县|