如何给下拉按钮绘上颜色
解决方案 »
- 新手请问一个C#的类的函数的问题
- 怎样实现Datagridview的列宽根据列中的内容改变大小?并且AutoSizeColumnsMode设为fill
- 请教一个编程模式的问题,有一个窗体,被很多其他窗体调用,用什么方法可以在其他窗体中控制该窗体的壮态
- 菜鸟问题,关于线程中打开窗口~HELP
- xml如何在读取属性值之前先判断是否存在该属性
- 推荐几本C#入门书
- axWebBrowser 是非受托管的控件,所以不能运行于智能客户端,那我在智能客户端中如何才能允许打开一个网页呢?
- 升级时,怎样知道上次用户安装的路径?
- 诚聘ASP.net ,C#程序员
- 关于自动排课算法!高分!!!
- 如何捕捉左侧的Ctrl键或右侧的Ctrl键??????知道的给个答案谢谢!~
- 如何在windows应用程序中嵌入一个网页?
//首先设置
DrawMode = DrawMode.OwnerDrawFixed;
/// <summary>
/// 默认画刷
/// </summary>
SolidBrush brushDefaultSb; /// <summary>
/// 选中时画刷
/// </summary>
SolidBrush brushSelectSb; /// <summary>
/// 默认字体画刷
/// </summary>
SolidBrush brushDefaultFont; /// <summary>
/// 默认画笔
/// </summary>
Pen penDefault=new Pen(Color.Green);//(Color.FromArgb(0,45,150),1f); /// <summary>
/// 选择时矩形边框
/// </summary>
Rectangle recSelect;
/// <summary>
/// 获取或设置背景色
/// </summary>
public override Color BackColor
{
get
{
return Color.FromArgb(246,246,246);
}
set
{
base.BackColor = value;
}
}
/// <summary>
/// 获取或设置字体
/// </summary>
public override Font Font
{
get
{
return new Font("宋体",9f);
}
set
{
base.Font = value;
}
}protected override void OnDrawItem(DrawItemEventArgs e)
{// e.DrawBackground();
// e.DrawFocusRectangle();
brushDefaultSb=new SolidBrush((Color.FromArgb(246,246,246)));
brushSelectSb =new SolidBrush(Color.FromArgb(255,238,194));
// penDefault =new Pen(Color.FromArgb(0,45,150),1f);
brushDefaultFont=new SolidBrush(Color.Black);
recSelect =new Rectangle(e.Bounds.X+1,e.Bounds.Y+1,e.Bounds.Width-2,e.Bounds.Height-2);
base.OnDrawItem(e);
//填充背景
e.Graphics.FillRectangle(this.brushDefaultSb,e.Bounds);
//选择
if( ( e.State & DrawItemState.Selected) !=0 )
{
e.Graphics.FillRectangle(this.brushSelectSb,this.recSelect);
//矩形边框
e.Graphics.DrawRectangle(this.penDefault,recSelect);
} if( ( e.State & DrawItemState.NoFocusRect)!=0 && (e.State & DrawItemState.NoAccelerator)!=0)
e.Graphics.DrawRectangle(this.penDefault,e.Bounds); //字
if( e.Index >-1)
e.Graphics.DrawString(this.Items[e.Index].ToString(),this.Font,this.brushDefaultFont,e.Bounds.X+2,e.Bounds.Y+2);
#region
// imageComboBoxItem item=new imageComboBoxItem();
// Size imageSize = _imageList.ImageSize;
// Rectangle bounds = e.Bounds;
//
// try
// {
// /*关于imageComboBoxItem的定义在下面论述*,这一步也是关键/
// item = (imageComboBoxItem)Items[e.Index];
// /*在此处用了一个小技巧。因为组合框列表项中的索引从0开始,对于那些没有图标的项(用于不知道属性哪一个年级的学生)把其索引设置为-1,即只要其索引值不为-1,表明有图像;否则没有图像*/
// if (item.ImageIndex != -1)//即有图像又有文本
// {
// //画图像
// _imageList.Draw(e.Graphics, bounds.Left, bounds.Top, item.ImageIndex);
// //绘制文本
// e.Graphics.DrawString(item.Text, e.Font, new
// SolidBrush(e.ForeColor), bounds.Left+imageSize.Width, bounds.Top);
// }
// else//只有文本,没有图像
// {
// //写文本
// e.Graphics.DrawString(item.Text, e.Font, new
// SolidBrush(e.ForeColor), bounds.Left, bounds.Top);
// }
// }
// //一定要有
// catch
// {
// if (e.Index != -1)
// {
// e.Graphics.DrawString(Items[e.Index].ToString(), e.Font, new
// SolidBrush(e.ForeColor), bounds.Left, bounds.Top);
// }
// else
// {
// e.Graphics.DrawString(Text, e.Font, new
// SolidBrush(e.ForeColor), bounds.Left, bounds.Top);
// }
//
// }
#endregion
}