/// <summary> /// 绘制列表子项 /// </summary> /// <param name="g">绘图表面</param> /// <param name="subItem">要绘制的子项</param> /// <param name="rectSubItem">该子项的区域</param> /// <param name="sb">画刷</param> protected virtual void DrawSubItem(Graphics g, ChatListSubItem subItem, ref Rectangle rectSubItem, SolidBrush sb) { if (subItem.Equals(selectSubItem)) { //判断改子项是否被选中 rectSubItem.Height = (int)ChatListItemIcon.Large; //如果选中则绘制成大图标 sb.Color = this.subItemSelectColor; g.FillRectangle(sb, rectSubItem); DrawHeadImage(g, subItem, rectSubItem); //绘制头像 DrawLargeSubItem(g, subItem, rectSubItem); //绘制大图标 显示的个人信息 subItem.Bounds = new Rectangle(rectSubItem.Location, rectSubItem.Size); return; } else if (subItem.Equals(m_mouseOnSubItem)) sb.Color = this.subItemMouseOnColor; else sb.Color = this.subItemColor; g.FillRectangle(sb, rectSubItem); DrawHeadImage(g, subItem, rectSubItem); if (iconSizeMode == ChatListItemIcon.Large) //没有选中则根据 图标模式绘制 DrawLargeSubItem(g, subItem, rectSubItem); else DrawSmallSubItem(g, subItem, rectSubItem); subItem.Bounds = new Rectangle(rectSubItem.Location, rectSubItem.Size); }