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 美化combobox下拉控件
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form_Load);
this.beautifulCombo.DrawMode = DrawMode.OwnerDrawVariable;//必须在这里设置模式,不然没有效果
this.beautifulCombo.DrawItem+=new DrawItemEventHandler(beautifulCombo_DrawItem);
}
protected void Form_Load(object sender, EventArgs e)
{
beautifulCombo.Items.Add("白菜");
beautifulCombo.Items.Add("萝卜");
beautifulCombo.Items.Add("土豆");
beautifulCombo.Items.Add("洋葱");
beautifulCombo.Items.Add("南瓜");
beautifulCombo.Items.Add("西瓜");
beautifulCombo.SelectedIndex = 0;
}
private void beautifulCombo_DrawItem(object sender, DrawItemEventArgs e)
{
Graphics g = e.Graphics;
Rectangle r = e.Bounds;
Size imgsize = imageList1.ImageSize;
FontDialog fd = new FontDialog();
Font fs = fd.Font;
if (e.Index >= 0)
{
string temp = (string)beautifulCombo.Items[e.Index];
StringFormat sf = new StringFormat();
sf.Alignment = StringAlignment.Near;
if (e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect))
{
e.Graphics.FillRectangle(new SolidBrush(Color.Red), r);
imageList1.Draw(e.Graphics, r.Left, r.Top, e.Index);
e.Graphics.DrawString(temp, fs, new SolidBrush(Color.Black), r.Left + imgsize.Width,r.Top);
e.DrawFocusRectangle();
}
else
{
e.Graphics.FillRectangle(new SolidBrush(Color.LightBlue), r);
imageList1.Draw(g, r.Left, r.Top, e.Index);
e.Graphics.DrawString(temp, fs, new SolidBrush(Color.Black), r.Left + imgsize.Width, r.Top);
e.DrawFocusRectangle();
}
}
}
}
}
美化ComboBox下拉
最新推荐文章于 2024-03-26 20:40:56 发布