zoukankan      html  css  js  c++  java
  • 窗体重画(OnPaint)

    在做windows 窗体程序的时候,如果我们希望在窗体每次重画的时候都做一个事情,应该重写OnPaint这个虚方法。例如下面代码是在每次重画的时候都给窗体的背景刷上一个渐变的颜色。

            protected override void OnPaint(PaintEventArgs e)
            {
                base.OnPaint(e);
                if (this.WindowState != FormWindowState.Minimized)
                {
                    ///这是一个颜色渐变的刷子
                    LinearGradientBrush brush = new LinearGradientBrush(
                        ClientRectangle, 
                        Properties.Settings.Default.Color1,//来自配置的颜色
                        Properties.Settings.Default.Color2,//来自配置的颜色 
                        LinearGradientMode.Vertical);
    
                    Graphics graphics = this.CreateGraphics();
    
                    graphics.FillRectangle(brush, ClientRectangle);
                }
            }

    那么什么时候会需要重画呢?简单地说,窗体显示出来(Show),以及激活(Activate),以及调整大小(Resize)的时候,都会自动重画。而且,完整地说,重画是控件的一个通用行为。

    image

  • 相关阅读:
    2017ecjtu-summer training # 9 HDU 4544
    2017ecjtu-summer training #6 Gym 100952D
    HDU 1241 DFS
    集训队选拔赛 day4
    Educational Codeforces Round 67 (Rated for Div. 2)
    Codeforces Round #566 (Div. 2)
    Codeforces Round #567 (Div. 2)
    Codeforces Round #568 (Div. 2)
    Codeforces Round #569 (Div. 2)
    牛客练习赛48
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1290301.html
Copyright © 2011-2022 走看看