protected override void OnPaint(PaintEventArgs e) { base.OnPaint(e); Graphics g = e.Graphics; TextFormatFlags flags = TextFormatFlags.Left | TextFormatFlags.VerticalCenter; #region 绘制 检查栏文字 if (this._searchText != string.Empty) { // 按""检索: if (this._isSearchData) { const string L_TEXT = "按\""; const string R_TEXT = "\"检索"; Size l_size = Size.Ceiling(TextRenderer.MeasureText(L_TEXT, this.Font)); Size text_size = Size.Ceiling(TextRenderer.MeasureText(this._searchText, this.Font)); Size r_size = Size.Ceiling(TextRenderer.MeasureText(R_TEXT, this.Font)); TextRenderer.DrawText( g, L_TEXT, this.Font, this.SearchTextBound, Color.FromArgb(132, 132, 132), flags); Rectangle rect = this.SearchTextBound; rect.X += l_size.Width; rect.Width -= l_size.Width; TextRenderer.DrawText(g, this._searchText, this.Font, rect, Color.Red, flags); rect.X += text_size.Width; rect.Width = r_size.Width; TextRenderer.DrawText(g, R_TEXT, this.Font, rect, Color.FromArgb(132, 132, 132), flags); } else { const string NOTIFY_TEXT = "无法匹配:"; Size size = Size.Ceiling(TextRenderer.MeasureText(NOTIFY_TEXT, this.Font)); TextRenderer.DrawText( g, NOTIFY_TEXT, this.Font, this.SearchTextBound, Color.FromArgb(132, 132, 132), flags); Rectangle rect = this.SearchTextBound; rect.X += (size.Width - 10); rect.Width -= size.Width; TextRenderer.DrawText(g, this._searchText, this.Font, rect, Color.Red, flags); } } // 检索栏下边虚线 using (Pen pen = new Pen(Color.FromArgb(132, 132, 132))) { pen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dash; g.DrawLine(pen, this.SearchTextBound.Left, this.SearchTextBound.Bottom - 1, this.SearchTextBound.Right, this.SearchTextBound.Bottom - 1); } #endregion #region 绘制检索结果 if (this.Items.Count > 0) { Font itemFont = new Font("黑体", 10.0f); for (int i = 0; i < this.Items.Count; i++) { ChooseListItem item = this.Items[i]; if (item.MouseState == EMouseState.MouseMove) { using (Brush brush = new SolidBrush(Color.FromArgb(200, 227, 252))) { g.FillRectangle(brush, item.Bounds); } using (Pen pen = new Pen(Color.FromArgb(104, 167, 246))) { g.DrawLine( pen, item.Bounds.X, item.Bounds.Y, item.Bounds.Right - 1, item.Bounds.Y); g.DrawLine( pen, item.Bounds.X, item.Bounds.Bottom - 1, item.Bounds.Right - 1, item.Bounds.Bottom - 1); } } TextRenderer.DrawText( g, this.Items[i].Text, itemFont, item.Bounds, Color.FromArgb(0, 85, 170), flags); } } #endregion }
public int IndexOf(ChooseListItem value) { return(this._list.IndexOf(value)); }
public void Remove(ChooseListItem item) { this._list.Remove(item); }
public void Insert(int index, ChooseListItem item) { this._list.Insert(index, item); }
public bool Contains(ChooseListItem item) { return(this._list.Contains(item)); }
public int Add(ChooseListItem item) { return(this._list.Add(item)); }