简体   繁体   中英

How to disable an item in combbox on popup show

Is there any way to disable specific item inside combobox based on condition. which need to display on click of combobox ie on popup show

Step 1. Set the property DrawMode of the ComboBox to OwnerDrawFixed

Step 2. Change the Item color using Index value

 Font fontValue = new Font("calibri", 12, FontStyle.Regular);

 //Form Load
 private void form_Load(object sender, EventArgs e)
 {
    List<string> lstCombxValue = new List<string>();
    lstCombxValue.Add("Item A1");
    //Item to Disable
    lstCombxValue.Add("Item A2");
    lstCombxValue.Add("Item A3");
    lstCombxValue.Add("Item A4");
    lstCombxValue.Add("Item A5");
    lstCombxValue.Add("Item A6");

    comboBox1.DataSource = lstCombxValue;
 }

 private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
 {
     //Check the Condition get the Item Index Value to Disable 
     //and follow this step to disable the item
     if (e.Index == 1)
     {
         e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), fontValue, Brushes.Gray, e.Bounds);
     }
     else
     {
         e.DrawBackground();
         e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), fontValue, Brushes.Black, e.Bounds);
         e.DrawFocusRectangle();
     }
 }

示例图像

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM