/*
* 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