private void DrawImage(RepositoryItemCheckedImageComboBoxEdit edit, Graphics gr, int index, ref Rectangle valRect) { Image image = edit.GetItemImage(index); Rectangle rect = new Rectangle(valRect.X, valRect.Y, RepositoryItemCheckedImageComboBoxEdit.ImageWidth, RepositoryItemCheckedImageComboBoxEdit.ImageHeight); if (image != null) { gr.DrawImage(image, rect); valRect.X += RepositoryItemCheckedImageComboBoxEdit.ImageWidth + 2; } }
protected override void DrawString(ControlGraphicsInfoArgs info, Rectangle bounds, string text, DevExpress.Utils.AppearanceObject appearance) { PopupContainerEditViewInfo viewInfo = info.ViewInfo as PopupContainerEditViewInfo; RepositoryItemCheckedImageComboBoxEdit edit = viewInfo.Item as RepositoryItemCheckedImageComboBoxEdit; if (!edit.CanShowImageInEditBox) { base.DrawString(info, bounds, text, appearance); } else { DrawContent(info, bounds, text, appearance); } }
public override void Assign(RepositoryItem item) { BeginUpdate(); try { base.Assign(item); RepositoryItemCheckedImageComboBoxEdit source = item as RepositoryItemCheckedImageComboBoxEdit; if (source == null) { return; } imageMember = source.ImageMember; showImagesInEditBox = source.ShowImagesInEditBox; } finally { EndUpdate(); } }
private void DrawContent(ControlGraphicsInfoArgs info, Rectangle bounds, string text, DevExpress.Utils.AppearanceObject appearance) { PopupContainerEditViewInfo viewInfo = info.ViewInfo as PopupContainerEditViewInfo; RepositoryItemCheckedImageComboBoxEdit edit = viewInfo.Item as RepositoryItemCheckedImageComboBoxEdit; string[] values = text.Split(edit.SeparatorChar); Rectangle valRect = new Rectangle(bounds.X, bounds.Y, 0, bounds.Height); foreach (string val in values) { int index = GetIndexByDescription(edit.GetItems(), val.Trim()); if (index != -1) { DrawImage(edit, info.Graphics, index, ref valRect); } string str = val; if (Array.IndexOf(values, val) < values.Length - 1) { str = string.Concat(val, edit.SeparatorChar); } DrawString(info, appearance, ref valRect, str); } }
static CheckedImageComboBoxEdit() { RepositoryItemCheckedImageComboBoxEdit.RegisterCheckedImageComboBoxEdit(); }