/// <summary> /// Occurs when an element within the <see cref="ImageComboBox"/> is drawn. /// </summary> /// <param name="e">The <see cref="DrawItemEventArgs"/> /// which determines which element is being drawn.</param> protected override void OnDrawItem(DrawItemEventArgs e) { var index = e.Index; if (index != -1) { object item = base.Items[index]; if (item is ImageObjectItem) { ImageObjectItem imageItem = (ImageObjectItem)item; DrawItemState newState = e.State; if (!imageItem.Enabled) { newState |= DrawItemState.Disabled; } if (newState != e.State) { e = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, newState); } if (this.Style != null) { this.Style.OnDrawItemEvent(imageItem, e, this.Font); } } } base.OnDrawItem(e); }
/// <summary> /// Occurs when an element within the <see cref="ImageListBox"/> is drawn. /// </summary> /// <param name="e">The <see cref="DrawItemEventArgs"/> /// which determines which element is being drawn.</param> protected override void OnDrawItem(System.Windows.Forms.DrawItemEventArgs e) { if ((e.Index != -1) && e.Index < base.Items.Count) { object item = base.Items[e.Index]; if (item is ImageObjectItem) { ImageObjectItem imageItem = (ImageObjectItem)item; DrawItemState k = e.State; if (!imageItem.Enabled) { k |= DrawItemState.Disabled; } if (!this.Enabled) { k |= DrawItemState.ComboBoxEdit; } if (k != e.State) { e = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, k); } if (this.Style != null) { this.Style.OnDrawItemEvent(imageItem, e, this.Font); } } } base.OnDrawItem(e); }
/// <summary> /// Occurs when an element needs redrawn. /// </summary> /// <param name="index">The <see cref="Int32"/> value representing /// the ordinal index of the element to redraw.</param> private void RedrawItem(int index) { if ((index == -1) || (index >= this.items.Count)) { return; } ImageObjectItem item = this.items[index]; DrawItemState diState = DrawItemState.Default; Rectangle itemRect = this.GetItemRectangle(index); foreach (int idx in this.SelectedIndices) { if (idx == index) { diState |= DrawItemState.Selected; } } if (this.Focused) { diState |= DrawItemState.Focus; } DrawItemEventArgs dieas = new DrawItemEventArgs(this.CreateGraphics(), this.Font, itemRect, index, diState, this.ForeColor, this.BackColor); this.OnDrawItem(dieas); dieas.Graphics.Dispose(); }
private void OnItemCheckChanged(ImageObjectItem item) { if (this.ItemCheckChanged != null) { this.ItemCheckChanged(this, new ImageCheckedListBoxItemCheckChangedEventArgs(item)); } }
/// <summary> /// Occurs when the mouse moves within the scope of the /// <see cref="ImageCheckedListBox"/>. /// </summary> /// <param name="e">The <see cref="MouseEventArgs"/> /// which specify pertinent information about the mouse event.</param> protected override void OnMouseMove(MouseEventArgs e) { ImageObjectItem newHoveredItem; SizeF imageMetric; if (e.Button == MouseButtons.None) { int itemUnderCursor = this.IndexFromPoint(new Point(e.X, e.Y)); if (itemUnderCursor != -1 && itemUnderCursor != 65535) { Rectangle itemRect = this.GetItemRectangle(itemUnderCursor); newHoveredItem = this.items[itemUnderCursor]; if ((newHoveredItem != this.hoveredItem) && (this.hoveredItem != null)) { if (this.hoveredItem.CheckAreaHovered) { this.hoveredItem.CheckAreaHovered = false; } } if (this.imageList == null) { imageMetric = new SizeF(16, 16); } else { imageMetric = new SizeF(this.imageList.ImageSize.Width, this.imageList.ImageSize.Height); } if ((e.X >= itemRect.Left + 3 && e.X < itemRect.Left + 3 + imageMetric.Width) && (e.Y >= itemRect.Top + ((itemRect.Height - imageMetric.Height) / 2) && e.Y < itemRect.Top + ((itemRect.Height + imageMetric.Height) / 2))) { if (!newHoveredItem.CheckAreaHovered) { newHoveredItem.CheckAreaHovered = true; } } else if (newHoveredItem.CheckAreaHovered) { newHoveredItem.CheckAreaHovered = false; } this.hoveredItem = newHoveredItem; } else { if (hoveredItem != null && hoveredItem.CheckAreaHovered) { hoveredItem.CheckAreaHovered = false; } hoveredItem = null; } } base.OnMouseMove(e); }
/// <summary> /// Occurs when an element within the <see cref="ImageListBox"/> is measured. /// </summary> /// <param name="e">The <see cref="MeasureItemEventArgs"/> /// which determines the specific item to be measured.</param> protected override void OnMeasureItem(System.Windows.Forms.MeasureItemEventArgs e) { if (e.Index < base.Items.Count) { object item = base.Items[e.Index]; if (item is ImageObjectItem) { ImageObjectItem imageItem = (ImageObjectItem)item; SizeF stringSize = e.Graphics.MeasureString(imageItem.Text, this.Font); e.ItemHeight = this.GetBaseItemHeight(e.Graphics, stringSize); if (this.Style != null) { this.Style.OnMeasureItemEvent(imageItem, ref e, this.Font); } } } base.OnMeasureItem(e); }
/// <summary> /// Occurs when the selection changes. /// </summary> /// <param name="e">The <see cref="EventArgs"/> which contains the parameters /// on the event.</param> protected override void OnSelectedIndexChanged(EventArgs e) { ImageObjectItem selection = this.SelectedItem as ImageObjectItem; if (selection != null && !selection.Enabled) { voidingSelect = true; this.SelectedItem = lastSelection; voidingSelect = false; } else if (!voidingSelect) { base.OnSelectedIndexChanged(e); } if ((selection != null && selection.Enabled) || selection == null) { this.lastSelection = selection; } }
/// <summary> /// Occurs when an element within the <see cref="ImageCheckedListBox"/> is drawn. /// </summary> /// <param name="e">The <see cref="DrawItemEventArgs"/> /// which determines which element is being drawn.</param> protected override void OnDrawItem(DrawItemEventArgs e) { if ((e.Index != -1) && e.Index < base.Items.Count) { object item = base.Items[e.Index]; if (item is ImageObjectItem) { ImageObjectItem imageItem = (ImageObjectItem)item; DrawItemState diState = e.State; if (imageItem.Checked) { diState |= DrawItemState.Checked; } DrawItemEventArgs newArgs = new DrawItemEventArgs(e.Graphics, e.Font, e.Bounds, e.Index, diState); if (this.Style != null) { this.Style.OnDrawItemEvent(imageItem, newArgs, this.Font); } } } base.OnDrawItem(e); }