System.Windows.Forms.ThemeWin32Classic.DrawListViewSubItem C# (CSharp) Method

DrawListViewSubItem() protected method

protected DrawListViewSubItem ( Graphics dc, ListView control, System.Windows.Forms.ListViewItem item, int index ) : void
dc System.Drawing.Graphics
control ListView
item System.Windows.Forms.ListViewItem
index int
return void
		protected virtual void DrawListViewSubItem (Graphics dc, ListView control, ListViewItem item, int index)
		{
			ListViewItem.ListViewSubItem subItem = item.SubItems [index];
			ColumnHeader col = control.Columns [index];
			StringFormat format = new StringFormat ();
			format.Alignment = col.Format.Alignment;
			format.LineAlignment = StringAlignment.Center;
			format.FormatFlags = StringFormatFlags.NoWrap;
			format.Trimming = StringTrimming.EllipsisCharacter;

			Rectangle sub_item_rect = subItem.Bounds;
			Rectangle sub_item_text_rect = sub_item_rect;
			sub_item_text_rect.X += 3;
			sub_item_text_rect.Width -= ListViewItemPaddingWidth;
						
			SolidBrush sub_item_back_br = null;
			SolidBrush sub_item_fore_br = null;
			Font sub_item_font = null;
						
			if (item.UseItemStyleForSubItems) {
				sub_item_back_br = ResPool.GetSolidBrush (item.BackColor);
				sub_item_fore_br = ResPool.GetSolidBrush (item.ForeColor);

				// Hot tracking for subitems only applies when UseStyle is true
				if (control.HotTracking && item.Hot)
					sub_item_font = item.HotFont;
				else
					sub_item_font = item.Font;
			} else {
				sub_item_back_br = ResPool.GetSolidBrush (subItem.BackColor);
				sub_item_fore_br = ResPool.GetSolidBrush (subItem.ForeColor);
				sub_item_font = subItem.Font;
			}
						
			if (item.Selected && (control.Focused || !control.HideSelection) && control.FullRowSelect) {
				Brush bg, text;
				if (control.Focused) {
					bg = SystemBrushes.Highlight;
					text = SystemBrushes.HighlightText;
				} else {
					bg = SystemBrushes.Control;
					text = sub_item_fore_br;
							
				}
							
				dc.FillRectangle (bg, sub_item_rect);
				if (subItem.Text != null && subItem.Text.Length > 0)
					dc.DrawString (subItem.Text, sub_item_font,
							text, sub_item_text_rect, format);
			} else {
				dc.FillRectangle (sub_item_back_br, sub_item_rect);
				if (subItem.Text != null && subItem.Text.Length > 0)
					dc.DrawString (subItem.Text, sub_item_font,
							sub_item_fore_br,
							sub_item_text_rect, format);
			}

			format.Dispose ();
		}
ThemeWin32Classic