/* * Created by: Jarda Jirava * http://www.jirava.net */ using System; using System.Collections; using System.ComponentModel; using System.Drawing; using System.Data; using System.Windows.Forms; using System.Diagnostics; namespace JiravaNet.Windows.Forms { /// /// Multi column Combo box. Displays information in various format from more than one datasource column/property /// public class MultiColumnComboBox: ComboBox { private string formatString; private string displayMember; public MultiColumnComboBox(): base() { formatString = "{0}"; displayMember = string.Empty; } protected override void OnDrawItem(DrawItemEventArgs e) { base.OnDrawItem (e); if ((e.Index < 0) || (e.Index >= Items.Count)) return; if ((DisplayMember == null) || (DisplayMember.Length <= 0)) return; string [] columns = this.DisplayMember.Split(','); object [] values = new object[columns.Length]; string displayText = string.Empty; Brush brush = null; RectangleF layout = new RectangleF(e.Bounds.X, e.Bounds.Y, e.Bounds.Width, e.Bounds.Height); for (int i=0; i