private void OnDrawingItem(WSNAutoCompleteListBoxDrawingItemEventArgs e) { if (DrawingItem != null) { DrawingItem(this, e); } }
protected override void OnDrawItem(DrawItemEventArgs e) { base.OnDrawItem(e); if (Items.Count <= 0) { return; } if (e.Index != -1) { Color bColor = e.BackColor; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { e.Graphics.FillRectangle(new SolidBrush(SelectBackColor), e.Bounds); } else { Color backColor; backColor = Color.White; using (SolidBrush brush = new SolidBrush(Color.White)) { e.Graphics.FillRectangle(brush, e.Bounds); } } #region 设置显示Text //提供一个委托接口,让外面改变显示的文本 WSNAutoCompleteListBoxDrawingItemEventArgs drawingItemEventArgs = new WSNAutoCompleteListBoxDrawingItemEventArgs(GetItemText(Items[e.Index]), Items[e.Index]); OnDrawingItem(drawingItemEventArgs); #endregion TextFormatFlags formatFlags = TextFormatFlags.VerticalCenter; if (RightToLeft == RightToLeft.Yes) { formatFlags |= TextFormatFlags.RightToLeft; } else { formatFlags |= TextFormatFlags.Left; } TextRenderer.DrawText( e.Graphics, drawingItemEventArgs.Text, Font, new Rectangle((e.Bounds.Width > 5) ? (e.Bounds.X + 5) : (e.Bounds.X), e.Bounds.Y, e.Bounds.Width, e.Bounds.Height), ForeColor, formatFlags); } }
protected override void OnDrawItem(DrawItemEventArgs e) { base.OnDrawItem(e); if (Items.Count <= 0) return; if (e.Index != -1) { Color bColor = e.BackColor; if ((e.State & DrawItemState.Selected) == DrawItemState.Selected) { e.Graphics.FillRectangle(new SolidBrush(SelectBackColor), e.Bounds); } else { Color backColor; backColor = Color.White; using (SolidBrush brush = new SolidBrush(Color.White)) { e.Graphics.FillRectangle(brush, e.Bounds); } } #region 设置显示Text //提供一个委托接口,让外面改变显示的文本 WSNAutoCompleteListBoxDrawingItemEventArgs drawingItemEventArgs = new WSNAutoCompleteListBoxDrawingItemEventArgs(GetItemText(Items[e.Index]), Items[e.Index]); OnDrawingItem(drawingItemEventArgs); #endregion TextFormatFlags formatFlags = TextFormatFlags.VerticalCenter; if (RightToLeft == RightToLeft.Yes) { formatFlags |= TextFormatFlags.RightToLeft; } else { formatFlags |= TextFormatFlags.Left; } TextRenderer.DrawText( e.Graphics, drawingItemEventArgs.Text, Font, new Rectangle((e.Bounds.Width > 5) ? (e.Bounds.X + 5) : (e.Bounds.X), e.Bounds.Y, e.Bounds.Width, e.Bounds.Height), ForeColor, formatFlags); } }