在onPaint事件

时间:2015-12-13 04:05:52

标签: winforms compact-framework

进行用户控制时,更新控件特定部分的正确方法是什么?

假设我有一个名为CornerIcon的Image属性,用户将新图像设置为此属性。我是否需要将 onlyUpdateCornerIcon 作为标志才能更新该部分?或者只是在没有标志检查的情况下执行onPaint(没有标记在没有足够内存且导致更新行为迟缓的设备上很昂贵)

虽然如果控制很复杂,那么标志似乎很难跟踪事情。例如,如果用户更改高度,我将需要设置高度更改标志和 onlyUpdateCornerIcon ,因为它们相互依赖以正确显示控件。由于控件变得复杂,我最终为一些道具设置了5或6个标志......围绕这个解决方案?

Image CornerIcon{
   get{return cornerIcon;}
   set{
     cornerIcon = value;
     onlyUpdateCornerIcon = true;
     Invalidate();
   }
}

onPaint(..){

   if(onlyUpdateCornerIcon){
     //updateImageHere
     return;
   }

   if(onlyUpdateText){
     //update Text here
     return;
   }

   //Paint all other props here
}

0 个答案:

没有答案