winforms - changing the forecolor in array of dynamically created combobox based on item in c#.net -
i have change forecolor of 30 combobox*s* created dynamically , forecolor schould based on item value. as, i'm having dynamic array of combobox cant so... please me.
code sample:
public partial class form1 : form { combobox[] cb = new combobox[28]; private void form1_load(object sender, eventargs e) { (int ii = 0; ii < 28; ii++) { cb[ii] = new combobox(); cb[ii].name = "cb"+ii.tostring(); cb[ii].items.add("ok"); cb[ii].items.add("not ok"); if (cb[ii].items.tostring().equals("ok")) { cb[ii].forecolor = color.black; } else { cb[ii].forecolor = color.red; } } } new code: private void comboboxselectedindexchanged(object sender, eventargs e) { messagebox.show("event raised"); combobox sendercombobox = (combobox)sender; if (sendercombobox.selectionlength > 0) { if (sendercombobox.selecteditem.tostring() == "ok") { sendercombobox.items.add(""); sendercombobox.forecolor = color.green; sendercombobox.items.remove(""); } else { sendercombobox.items.add(""); sendercombobox.forecolor = color.red; sendercombobox.items.remove(""); } } }
thanks in advance.
first of change for
:
for (int ii = 0; ii < 28; ii++) { cb[ii] = new combobox(); cb[ii].name = "cb"+ii.tostring(); cb[ii].items.add("ok"); cb[ii].items.add("not ok"); cb[ii].selectedindex = 0; //"ok" option selected cb[ii].forecolor = color.black; //set forecolor black cb[ii].selectedindexchanged += comboboxselectedindexchanged; }
next add event:
private void comboboxselectedindexchanged(object sender, eventargs e) { combobox sendercombobox = (combobox) sender; if (sendercombobox.selectionlength > 0) { if (sendercombobox.selecteditem.tostring() == "ok") { cb[ii].forecolor = color.black; } else { cb[ii].forecolor = color.red; } } }
selectedindexchanged
fired always, whether index has been changed user or code. if want change fore color when user changes selection use selectionchangecommitted
Comments
Post a Comment