本帖最后由 Donecheng520 于 2010-06-23 22:46:02 编辑

解决方案 »

  1.   

    http://www.codeproject.com/KB/combobox/ImageComboBoxControl.aspx
      

  2.   

    C# WinForm控件美化扩展系列之ImageComboBox
      

  3.   

    .NET自带的ComboBox控件没有添加图片的功能,我们可以自己进行扩展,下面就是扩展类的代码:
    类名字:ComboBoxEx.cs代码如下:using System;
    using System.Windows.Forms;
    using System.Windows.Forms.Design;
    using System.Drawing;namespace Mengxianhui.ComboBoxEx
    {
      class ComboBoxEx : ComboBox
      {
        private ImageList imageList;
        public ImageList ImageList
        {
          get {return imageList;}
          set {imageList = value;}
        }    public ComboBoxEx()
        {
          DrawMode = DrawMode.OwnerDrawFixed;
        }    protected override void OnDrawItem(DrawItemEventArgs ea)
        {
          ea.DrawBackground();
          ea.DrawFocusRectangle();      ComboBoxExItem item;
          Size imageSize = imageList.ImageSize;
          Rectangle bounds = ea.Bounds;      try
          {
            item = (ComboBoxExItem)Items[ea.Index];        if (item.ImageIndex != -1)
            {
              imageList.Draw(ea.Graphics, bounds.Left, bounds.Top,
                item.ImageIndex);
              ea.Graphics.DrawString(item.Text, ea.Font, new
                SolidBrush(ea.ForeColor), bounds.Left+imageSize.Width, bounds.Top);
            }
            else
            {
              ea.Graphics.DrawString(item.Text, ea.Font, new
                SolidBrush(ea.ForeColor), bounds.Left, bounds.Top);
            }
          }
          catch
          {
            if (ea.Index != -1)
            {
              ea.Graphics.DrawString(Items[ea.Index].ToString(), ea.Font, new
                SolidBrush(ea.ForeColor), bounds.Left, bounds.Top);
            }
            else
            {
              ea.Graphics.DrawString(Text, ea.Font, new
                SolidBrush(ea.ForeColor), bounds.Left, bounds.Top);
            }
          }      base.OnDrawItem(ea);
        }
      }  class ComboBoxExItem
      {
        private string _text;
        public string Text
        {
          get {return _text;}
          set {_text = value;}
        }    private int _imageIndex;
        public int ImageIndex
        {
          get {return _imageIndex;}
          set {_imageIndex = value;}
        }    public ComboBoxExItem()
          : this("") 
        {
        }    public ComboBoxExItem(string text)
          : this(text, -1) 
        {
        }    public ComboBoxExItem(string text, int imageIndex)
        {
          _text = text;
          _imageIndex = imageIndex;
        }    public override string ToString()
        {
          return _text;
        }
      }}
    使用方法using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;namespace Mengxianhui.ComboBoxEx
    {
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {
        private ComboBoxEx comboBox1;
        private System.ComponentModel.IContainer components; public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent(); //
    // TODO: Add any constructor code after InitializeComponent call
    //
    } /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
          ComboBoxEx comboBox1 = new ComboBoxEx();
          ImageList imageList1 = new ImageList();
          imageList1.Images.Add(Image.FromFile(@"D:\favicon.ico"));
          imageList1.Images.Add(Image.FromFile(@"D:\favicon4.ico"));
          imageList1.Images.Add(Image.FromFile(@"D:\favicon5.ico"));
          comboBox1.ImageList = imageList1;      comboBox1.Width = 200;      comboBox1.Items.Add(new ComboBoxExItem("【孟宪会之精彩世界】", 0));
          comboBox1.Items.Add(new ComboBoxExItem("【孟宪会之精彩世界】", 1));
          comboBox1.Items.Add(new ComboBoxExItem("【孟宪会之精彩世界】", 2));
          this.Controls.AddRange(new System.Windows.Forms.Control[] {comboBox1});      // 
          // Form1
          // 
          this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
          this.ClientSize = new System.Drawing.Size(292, 273);
          this.Controls.AddRange(new System.Windows.Forms.Control[] {comboBox1});
          this.Name = "Form1";
          this.Text = "Form1";
          this.ResumeLayout(false);    }
    #endregion /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
         
    }
    }
    代码已经打包了,你可以到这个地址下下来,可以直接使用,不需要注册直接下载即可。
    http://kkxxdown.com/rGPPFSAK