/// <summary> /// /// </summary> /// <param name="ComBox"></param> /// <param name="SelTag"></param> public static void SelectedComboBoxItemByTag(this System.Windows.Forms.ComboBox ComBox, object SelTag) { if (ComBox.Items != null && ComBox.Items.Count > 0) { ComBox.ComboBoxItem comBoxItem = null; try { for (int i = 0; i < ComBox.Items.Count; i++) { comBoxItem = (ComBox.ComboBoxItem)ComBox.Items[i]; if (comBoxItem.Tag != null && comBoxItem.Tag.Equals(SelTag)) { ComBox.SelectedIndex = i; break; } } } catch (System.Exception ex) { throw ex; } finally { if (comBoxItem != null) { comBoxItem = null; } } } }
/// <summary> /// /// </summary> /// <param name="ComBox"></param> /// <param name="SelText"></param> public static void SelectedComboBoxItemByText(this System.Windows.Forms.ComboBox ComBox, string SelText) { if (ComBox.Items != null && ComBox.Items.Count > 0) { ComBox.ComboBoxItem comBoxItem = null; try { for (int i = 0; i < ComBox.Items.Count; i++) { comBoxItem = (ComBox.ComboBoxItem)ComBox.Items[i]; if (comBoxItem.Text != null && comBoxItem.Text.ToString() == SelText) { ComBox.SelectedIndex = i; break; } } } catch (System.Exception ex) { throw ex; } finally { if (comBoxItem != null) { comBoxItem = null; } } } }
/// <summary> /// 重繪 Combo Box /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ComboBox_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) { ComboBox comBox = (ComboBox)sender; Graphics g = e.Graphics; Rectangle rec = e.Bounds; Font font = comBox.Font; if (e.Index > -1) { if (comBox.Items[e.Index] != null && (ComBox.ComboBoxItem)comBox.Items[e.Index] != null) { ComBox.ComboBoxItem comBoxItem = (ComBox.ComboBoxItem)comBox.Items[e.Index]; SolidBrush solidBrush = new SolidBrush(Color.LightSkyBlue); if (e.State == (DrawItemState.NoAccelerator | DrawItemState.NoFocusRect)) { solidBrush = new SolidBrush(Color.LightSkyBlue); e.Graphics.FillRectangle(solidBrush, rec); } else { e.Graphics.FillRectangle(solidBrush, rec); } solidBrush.Dispose(); System.Drawing.StringFormat sf = new System.Drawing.StringFormat(); SolidBrush sb = new SolidBrush(comBoxItem.ForeColor); sf.Alignment = StringAlignment.Near; e.Graphics.DrawString(comBoxItem.Text, font, sb, rec, sf); e.DrawFocusRectangle(); sf = null; sb = null; } } }