c# - After application has finished, why runtime values appear in design mode? -


i have custom descendant of datagridviewcomboboxcolumn following value of items property set in design mode:

     itema     itemb     itemc 

during runtime, i'm changing items property (example):

for (int = 0; < items.count; i++) {     items(i) = convert.tostring(items(i)) + " changed"; } 

after close form , return design mode, can see property value set

     itema changed     itemb changed     itemc changed 

i wouldn't believe possible i'm getting. after 5 launches, can see each item suffixed changed changed changed changed changed.

i'm changing items once, in method called paint event handler of descendant of datagridviewcomboboxcell. (there no better place hook it, because in constructor, initialization not finished yet items.count = 0).

most have created new component , used in designer.

when design component itself, or forms, code in component or in form not execute. event handlers, method overrides, none of executes.

however, if use component in designer, in form, code in component execute.

most have code in component runs in designer inside visual studio. fact seems launching app leaves remnants of changes behind more coincidence.

for instance, typical way happen, override paint method in component, , not check if component in design mode. whenever component needs painted, , includes being in designer of different form or control, code execute.

to check if component in design mode should this:

bool designmode = (licensemanager.usagemode == licenseusagemode.designtime); 

see this question more details: detecting design mode control's constructor.


Comments

Popular posts from this blog

javascript - Karma not able to start PhantomJS on Windows - Error: spawn UNKNOWN -

c# - Display ASPX Popup control in RowDeleteing Event (ASPX Gridview) -

Nuget pack csproj using nuspec -