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
Post a Comment