Ik ben er weer eens 
Nu met een vraagje over het gebruik van SetStyle ivm double buffering voor de flikkervrije weergave van controls (bv tijdens het resizen).
Met
Maar ook een paar bestaande .NET controls flikkeren tijdens het resizen. En dus zou ik die ook graag dubbel bufferen. Maar dat lukt me niet zonder omwegen. Bijvoorbeeld:
Cannot access protected member 'System.Windows.Forms.Control.SetStyle(System.Windows.Forms.ControlStyles, bool)' via a qualifier of type 'System.Windows.Forms.TabControl'; the qualifier must be of type 'namespace.Class' (or derived from it)
(namespace.Class is natuurlijk iets anders hier, maar ik heb het even vervangen voor de duidelijkheid)
Wanneer ik echter een nieuwe user control aanmaak die overerft van de TabControl en met enige verschil de regel die de double buffering voorziet, dan werkt het wel. SetStyle werkt dus enkel "binnen" de control waarvoor het bedoeld is.
Maar ik kan toch moeilijk elke standaard .NET control die flikkert gaan overerven gewoon voor die dubbel buffering? Is er geen andere methode om SetStyle te gebruiken waarbij ik geen overgerfde user control moet aanmaken?
Nu met een vraagje over het gebruik van SetStyle ivm double buffering voor de flikkervrije weergave van controls (bv tijdens het resizen).
Met
code:
kun je eenvoudig double buffering inschakelen. Dat werkt perfect voor al m'n user controls waarin ik dat stukje code heb toegevoegd.1
2
| SetStyle(ControlStyles.AllPaintingInWmPaint
| ControlStyles.DoubleBuffer, true); |
Maar ook een paar bestaande .NET controls flikkeren tijdens het resizen. En dus zou ik die ook graag dubbel bufferen. Maar dat lukt me niet zonder omwegen. Bijvoorbeeld:
code:
Geeft tijdens compileren:1
2
3
| TabControl tc = new TabControl();
tc.SetStyle(ControlStyles.AllPaintingInWmPaint
| ControlStyles.DoubleBuffer, true); |
Cannot access protected member 'System.Windows.Forms.Control.SetStyle(System.Windows.Forms.ControlStyles, bool)' via a qualifier of type 'System.Windows.Forms.TabControl'; the qualifier must be of type 'namespace.Class' (or derived from it)
(namespace.Class is natuurlijk iets anders hier, maar ik heb het even vervangen voor de duidelijkheid)
Wanneer ik echter een nieuwe user control aanmaak die overerft van de TabControl en met enige verschil de regel die de double buffering voorziet, dan werkt het wel. SetStyle werkt dus enkel "binnen" de control waarvoor het bedoeld is.
Maar ik kan toch moeilijk elke standaard .NET control die flikkert gaan overerven gewoon voor die dubbel buffering? Is er geen andere methode om SetStyle te gebruiken waarbij ik geen overgerfde user control moet aanmaken?