• 学习自定义控件


          今天晚上在宿舍狠狠得看了一点关乎自定义控件与GDI+相结合的例子,终于看得懂一点了...原来每个控件的细节外观都是一点点画出来的,也许这需要对色彩有较强的敏感度,但没事,我有时间慢慢测试。现在不仅要自定义按钮,同时还要自定义窗体和菜单的外观,有点计划去模仿QQ2009的效果,嘿嘿~不过在自定义控件方面还是有很多空白,期待明天晚上能有所突破吧~明天晚上就继续学习,研究窗体的画图......
          后来我发现原来对自定义控件每做一步(包括鼠标动作、键盘动作以及控件自身的任何变化)它都重新画一遍图形,都会触发自定义控件的OnPaint事件(绘制图形事件),但这也是一瞬间的事,你几乎感觉不到它的闪烁,除了你事先定义的变化之外。
          当然,你所做的每一步动作控件是不会自己触发OnPaint事件的,这就要你自己去设置。其实很简单,设置就一个语句:this.Invalidate();    这句表示强制使当前图形无效而重新绘制图形,就会调用OnPaint事件,而此时你的OnPaint事件里面都是所有的对控件外观的重新绘制方法,所以就刷新了外观咯。将此语句加在你自定义控件的事件最后,那就OK了。
          大体的机制就是这样。明白了这个原理,就仿佛学习C#又懂得了面向对象,以后的路子就宽敞多了。从此不会为绘制控件外观和消除某一部分的图形而烦恼,因为外观一直在改变,刷新重新绘制,只是你没察觉而已。
          加油,我离我梦心日记本V2.0又近了一步。

  • 相关阅读:
    Building fresh packages卡很久
    后端阿里代码扫描
    npm 使用淘宝镜像
    git镜像
    mysql安装8.0.18
    idea2019.2.2版本破解
    JDK下载很慢
    解决GitHub下载速度慢下载失败的问题
    Hashtable多线程遍历问题
    2-18 求组合数 注:代码有问题找不出哪儿错了
  • 原文地址:https://www.cnblogs.com/saper/p/1355772.html
Copyright © 2020-2023  润新知