vb.net - CheckedListBox in DataGridview Winforms VB NET -


i have datagridview data source contains many many relationship bin {id, name, bingradeid}, bingradeid {binid, gradeid, gradename }, grade {id, name}

i trying expose grades in checkedlistboxcolumn , right can not seem checkedlistboxcolumn

i have added checkedlistboxcolumn datagridview programatically. lacking in knowing how bind data source , have tried both examples here add multiple checkedlistbox columns of datagrid view

i have tried both of example codes posted - jeremy thompson - example looks nice nothing pop up/out this:
enter image description here

i tried other checkedlistboxcolumn , not work either.

here code add column datagridview

dim dgvchkcol checkedlistboxcolumn = new checkedlistboxcolumn() dgvchkcol.datapropertyname = "gradeid" dgvchkcol.name = "gradescheckbox" dgvchkcol.visible = true dgvchkcol.headertext = "gradescheckbox" datagridview1.columns.add(dgvchkcol) 

any code in vb or c# fine me - can convert easy enough - lacking in checkedlistbox , how in datagridview

in case wants see checkedlistbox code - c# converted vbnet

public class checkedlistboxcolumn     inherits datagridviewcolumn     public sub new()         mybase.new(new checkedlistboxcell())     end sub      public overrides property celltemplate() datagridviewcell                     return mybase.celltemplate         end         set(value datagridviewcell)             if value isnot nothing andalso not value.[gettype]().isassignablefrom(gettype(checkedlistboxcell))                 throw new invalidcastexception("must checkedlistboxcell")             end if             mybase.celltemplate = value         end set     end property end class  public class checkedlistboxcell     inherits datagridviewcell     public sub new()          mybase.new()     end sub      public overrides sub initializeeditingcontrol(rowindex integer, initialformattedvalue object, datagridviewcellstyle datagridviewcellstyle)         ' set value of editing control current cell value.           mybase.initializeeditingcontrol(rowindex, initialformattedvalue, datagridviewcellstyle)         dim ctl checkedlistboxeditingcontrol = trycast(datagridview.editingcontrol, checkedlistboxeditingcontrol)         initializecheckedlistbox(ctl, directcast(me.formattedvalue, icollection))     end sub     private sub initializecheckedlistbox(ctrl checkedlistbox, value icollection)         ctrl.items.clear()         each obj object in value             ctrl.items.add(obj.tostring())         next         ctrl.tag = me.value     end sub     public overrides readonly property edittype() type                     return gettype(checkedlistboxeditingcontrol)         end     end property     protected overrides function getformattedvalue(value object, rowindex integer, byref cellstyle datagridviewcellstyle, valuetypeconverter system.componentmodel.typeconverter, formattedvaluetypeconverter system.componentmodel.typeconverter, context datagridviewdataerrorcontexts) object         if value nothing             return new list(of object)()         end if         return mybase.getformattedvalue(value, rowindex, cellstyle, valuetypeconverter, formattedvaluetypeconverter, context)     end function     public overrides readonly property formattedvaluetype() type                     return gettype(icollection)         end     end property     public overrides property valuetype() type                     return gettype(icollection)         end         set(value type)          end set     end property     private internalcontrol checkedlistbox      protected overrides sub paint(graphics system.drawing.graphics, clipbounds system.drawing.rectangle, cellbounds system.drawing.rectangle, rowindex integer, cellstate datagridviewelementstates, value object, _         formattedvalue object, errortext string, cellstyle datagridviewcellstyle, advancedborderstyle datagridviewadvancedborderstyle, paintparts datagridviewpaintparts)         mybase.paint(graphics, clipbounds, cellbounds, rowindex, cellstate, value, _             formattedvalue, errortext, cellstyle, advancedborderstyle, paintparts)         graphics.fillrectangle(new solidbrush(cellstyle.backcolor), cellbounds)          if internalcontrol nothing             internalcontrol = new checkedlistbox()         end if         internalcontrol.items.clear()         dim collection icollection = trycast(value, icollection)         if collection isnot nothing             each obj object in collection                 internalcontrol.items.add(obj)             next             dim bmp new bitmap(cellbounds.width, cellbounds.height)             internalcontrol.drawtobitmap(bmp, new rectangle(0, 0, bmp.width, bmp.height))             graphics.drawimage(bmp, cellbounds, new rectangle(0, 0, bmp.width, bmp.height), graphicsunit.pixel)         end if     end sub     protected overrides sub onclick(e datagridviewcelleventargs)         me.datagridview.beginedit(false)         mybase.onclick(e)     end sub      public readonly property checkeditems() icollection 'implements idatagridvieweditingcontrol.                     if internalcontrol nothing                 return nothing             else                 if internalcontrol isnot nothing                     if internalcontrol.checkeditems.count > 0                         return internalcontrol.checkeditems                     else                         if directcast(me.datagridview.rows(rowindex).cells(columnindex).datagridview.editingcontrol, checkedlistbox) isnot nothing                             dim checks checkedlistbox = directcast(me.datagridview.rows(rowindex).cells(columnindex).datagridview.editingcontrol, checkedlistbox)                             if checks.checkeditems.count > 0                                 return checks.checkeditems                             else                                 return nothing                             end if                         else                             return nothing                         end if                     end if                 else                     return nothing                 end if             end if         end     end property  end class  class checkedlistboxeditingcontrol     inherits checkedlistbox     implements idatagridvieweditingcontrol     private datagridview datagridview     private valuechanged boolean = false     private rowindex integer       public sub new()     end sub      ' implements idatagridvieweditingcontrol.editingcontrolformattedvalue        ' property.       public property editingcontrolformattedvalue() object implements idatagridvieweditingcontrol.editingcontrolformattedvalue                     return me.tag         end         '  this.tag = value;           set(value object)         end set     end property      ' implements        ' idatagridvieweditingcontrol.geteditingcontrolformattedvalue method.       public function geteditingcontrolformattedvalue(context datagridviewdataerrorcontexts) object implements idatagridvieweditingcontrol.geteditingcontrolformattedvalue         return editingcontrolformattedvalue     end function      ' implements        ' idatagridvieweditingcontrol.applycellstyletoeditingcontrol method.       public sub applycellstyletoeditingcontrol(datagridviewcellstyle datagridviewcellstyle) implements idatagridvieweditingcontrol.applycellstyletoeditingcontrol         me.font = datagridviewcellstyle.font         me.forecolor = datagridviewcellstyle.forecolor         me.backcolor = datagridviewcellstyle.backcolor     end sub      ' implements idatagridvieweditingcontrol.editingcontrolrowindex        ' property.       public property editingcontrolrowindex() integer implements idatagridvieweditingcontrol.editingcontrolrowindex                     return rowindex         end         set(value integer)             rowindex = value         end set     end property      ' implements idatagridvieweditingcontrol.editingcontrolwantsinputkey        ' method.       public function editingcontrolwantsinputkey(key keys, datagridviewwantsinputkey boolean) boolean implements idatagridvieweditingcontrol.editingcontrolwantsinputkey         ' let datetimepicker handle keys listed.           select case key , keys.keycode             case keys.left, keys.up, keys.down, keys.right, keys.home, keys.[end], _                 keys.pagedown, keys.pageup                 return true             case else                 return not datagridviewwantsinputkey         end select     end function      ' implements idatagridvieweditingcontrol.prepareeditingcontrolforedit        ' method.       public sub prepareeditingcontrolforedit(selectall boolean) implements idatagridvieweditingcontrol.prepareeditingcontrolforedit         ' no preparation needs done.       end sub      ' implements idatagridvieweditingcontrol       ' .repositioneditingcontrolonvaluechange property.       public readonly property repositioneditingcontrolonvaluechange() boolean implements idatagridvieweditingcontrol.repositioneditingcontrolonvaluechange                     return false         end     end property      ' implements idatagridvieweditingcontrol       ' .editingcontroldatagridview property.       public property editingcontroldatagridview() datagridview implements idatagridvieweditingcontrol.editingcontroldatagridview                     return datagridview         end         set(value datagridview)             datagridview = value         end set     end property      ' implements idatagridvieweditingcontrol       ' .editingcontrolvaluechanged property.       public property editingcontrolvaluechanged() boolean implements idatagridvieweditingcontrol.editingcontrolvaluechanged                     return valuechanged         end         set(value boolean)             valuechanged = value         end set     end property      ' implements idatagridvieweditingcontrol       ' .editingpanelcursor property.       public readonly property editingpanelcursor() cursor implements idatagridvieweditingcontrol.editingpanelcursor                     return mybase.cursor         end     end property end class 


Comments

Popular posts from this blog

sequelize.js - Sequelize group by with association includes id -

delphi - Take screenshot in webcam using VFrames in Console Application -

php - Few issues in voting -