vb.net - Listview - Multi column - Change selection color for the whole row -


i change selection color in listview, default (blue). can not adapt code found needs.

here code closest.

  if e.item.selected = true         e.graphics.fillrectangle(new solidbrush(color.gray), e.bounds)         textrenderer.drawtext(e.graphics, e.item.text, new font(listview2.font, nothing), new point(e.bounds.left + 3, e.bounds.top + 2), color.white)     else         e.drawdefault = true     end if 

the main problem e.item.text part. doesn't work multi column listview. here result.

before selection : enter image description here

...and after : enter image description here

is possible preserve values other columns , still have full row selection?

thanks.

the thing keep in mind ownerdraw listview there 2 events respond (or override if subclassing) if control details view: drawcolumnheader , drawsubitem.

drawitem used when control using different view , there no subitems draw.

since subitems(0) same item.text, can use drawsubitem draw item , subitem text. cannot tell snippet located, work:

private sub lv1_drawsubitem(sender object,         e drawlistviewsubitemeventargs) handles lv1.drawsubitem      ' use sender instead of hardcodes control ref      ' can paste lv     dim mylv listview = ctype(sender, listview)      if e.itemindex > 0 andalso e.item.selected         using br new solidbrush(color.gray)             e.graphics.fillrectangle(br, e.bounds)         end using          using fnt new font(mylv .font, nothing)         ' use e.subitem.text             textrenderer.drawtext(e.graphics, e.subitem.text,                           fnt,                           new point(e.bounds.left + 3, e.bounds.top + 2),                           color.white)         end using     ' dispose!     else         e.drawdefault = true     end if  end sub 

it appear may using correct event, usingitem.text rather e.subitem.text item text drawn subitems (drawsubitem called many times there subitems).

note wrapped font in using block dispose of it. using limegreen, result:

enter image description here


Comments

Popular posts from this blog

c++ - No viable overloaded operator for references a map -

java - Custom OutputStreamAppender not run: LOGBACK: No context given for <MYAPPENDER> -

java - Cannot secure connection using TLS -