c# - DataGridViw ComboBox Column Event SelectedindexChanged -


in tha datagridview there 5 columns

1 -product id 2- product name 3-description 4-price , fifth 1
select-country comboboxcolumn

datagridview1.columns.add("id", "product id")     datagridview1.columns.add("name", "product name")     datagridview1.columns.add("description", "description")     datagridview1.columns.add("price", "price")    dim datagridviewcol new datagridviewcomboboxcolumn     datagridviewcol.items.add("pak")     datagridviewcol.items.add("kui")     datagridviewcol.name = "select"     datagridview1.columns.add(datagridviewcol) 

i add handler selectedindexchanged in datagridview editingcontrolshowing

 private sub datagridview1_editingcontrolshowing(byval sender system.object, byval e           system.windows.forms.datagridvieweditingcontrolshowingeventargs) handles datagridview1.editingcontrolshowing     if me.datagridview1.currentcell.columnindex = 4         dim cb combobox = ctype(e.control, combobox)         addhandler cb.selectedindexchanged, addressof combobox_selectedindexchanged      end if  end sub 

the selectedindexchanged event

private sub combobox_selectedindexchanged(byval sender system.object, byval e system.eventargs)     if ctype(sender, combobox).selectedindex = 0         messagebox.show("pak")     else         messagebox.show("kui")     end if  end sub 

it works if on datagridview row # 4 messagebox 4 times prompt let if select "pak" 15th row messagebox prompt 15 times need 1 time prompt.

help me. independent of row messagebox show 1 time not many times row number.

this happens because every time combobox showing adding event it, fires x times.

if me.datagridview1.currentcell.columnindex = 4     dim cb combobox = ctype(e.control, combobox)     removehandler cb.selectedindexchanged, addressof combobox_selectedindexchanged //remove handler if added before     addhandler cb.selectedindexchanged, addressof combobox_selectedindexchanged  end if 

this way remove handler attached combobox.selectedindexchanged.

from msdn

the datagridview control hosts 1 editing control @ time, , reuses editing control whenever cell type not change between edits. when attaching event-handlers editing control, must therefore take precautions avoid attaching same handler multiple times. avoid problem, remove handler event before attach handler event. prevent duplication if handler attached event, have no effect otherwise. more information, see example code in datagridviewcomboboxeditingcontrol class overview.


Comments

Popular posts from this blog

blackberry 10 - how to add multiple markers on the google map just by url? -

php - guestbook returning database data to flash -

delphi - Dynamic file type icon -