zoukankan      html  css  js  c++  java
  • (二十三)c#Winform自定义控件-等待窗体-HZHControls

    官网

    http://www.hzhcontrols.com

    前提

    入行已经7,8年了,一直想做一套漂亮点的自定义控件,于是就有了本系列文章。

    GitHub:https://github.com/kwwwvagaa/NetWinformControl

    码云:https://gitee.com/kwwwvagaa/net_winform_custom_control.git

    如果觉得写的还行,请点个 star 支持一下吧

    欢迎前来交流探讨: 企鹅群568015492 企鹅群568015492

    目录

    https://www.cnblogs.com/bfyx/p/11364884.html

    准备工作

    这个窗体继承子基类窗体FrmBase,如果你对FrmBase还不了解,请移步 (十七)c#Winform自定义控件-基类窗体 查看

    开始

    添加一个Form,命名FrmWaiting,继承自FrmBase

    代码不多,直接上全部代码

     1 // 版权所有  黄正辉  交流群:568015492   QQ:623128629
     2 // 文件名称:FrmWaiting.cs
     3 // 创建日期:2019-08-15 16:05:09
     4 // 功能描述:FrmWaiting
     5 // 项目地址:https://gitee.com/kwwwvagaa/net_winform_custom_control
     6 using System;
     7 using System.Collections.Generic;
     8 using System.ComponentModel;
     9 using System.Data;
    10 using System.Drawing;
    11 using System.Linq;
    12 using System.Text;
    13 using System.Windows.Forms;
    14 
    15 namespace HZH_Controls.Forms
    16 {
    17     public partial class FrmWaiting : FrmBase
    18     {
    19         public string Msg { get { return label2.Text; } set { label2.Text = value; } }
    20         public FrmWaiting()
    21         {
    22             base.SetStyle(ControlStyles.UserPaint, true);
    23             base.SetStyle(ControlStyles.AllPaintingInWmPaint, true);
    24             base.SetStyle(ControlStyles.DoubleBuffer, true);
    25             InitializeComponent();
    26         }
    27 
    28         private void timer1_Tick(object sender, EventArgs e)
    29         {
    30             if (this.label1.ImageIndex == this.imageList1.Images.Count - 1)
    31                 this.label1.ImageIndex = 0;
    32             else
    33                 this.label1.ImageIndex++;
    34 
    35         }
    36 
    37         private void FrmWaiting_VisibleChanged(object sender, EventArgs e)
    38         {
    39             //this.timer1.Enabled = this.Visible;
    40         }
    41 
    42         protected override void DoEsc()
    43         {
    44 
    45         }
    46 
    47         private void timer2_Tick(object sender, EventArgs e)
    48         {
    49             base.Opacity = 1.0;
    50             this.timer2.Enabled = false;
    51         }
    52 
    53         public void ShowForm(int intSleep = 1)
    54         {
    55             base.Opacity = 0.0;
    56             if (intSleep <= 0)
    57             {
    58                 intSleep = 1;
    59             }
    60             base.Show();
    61             this.timer2.Interval = intSleep;
    62             this.timer2.Enabled = true;
    63         }
    64     }
    65 }
    View Code
      1 namespace HZH_Controls.Forms
      2 {
      3     partial class FrmWaiting
      4     {
      5         /// <summary>
      6         /// Required designer variable.
      7         /// </summary>
      8         private System.ComponentModel.IContainer components = null;
      9 
     10         /// <summary>
     11         /// Clean up any resources being used.
     12         /// </summary>
     13         /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
     14         protected override void Dispose(bool disposing)
     15         {
     16             if (disposing && (components != null))
     17             {
     18                 components.Dispose();
     19             }
     20             base.Dispose(disposing);
     21         }
     22 
     23         #region Windows Form Designer generated code
     24 
     25         /// <summary>
     26         /// Required method for Designer support - do not modify
     27         /// the contents of this method with the code editor.
     28         /// </summary>
     29         private void InitializeComponent()
     30         {
     31             this.components = new System.ComponentModel.Container();
     32             System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FrmWaiting));
     33             this.imageList1 = new System.Windows.Forms.ImageList(this.components);
     34             this.label1 = new System.Windows.Forms.Label();
     35             this.timer1 = new System.Windows.Forms.Timer(this.components);
     36             this.label2 = new System.Windows.Forms.Label();
     37             this.timer2 = new System.Windows.Forms.Timer(this.components);
     38             this.SuspendLayout();
     39             // 
     40             // imageList1
     41             // 
     42             this.imageList1.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageList1.ImageStream")));
     43             this.imageList1.TransparentColor = System.Drawing.Color.White;
     44             this.imageList1.Images.SetKeyName(0, "0.png");
     45             this.imageList1.Images.SetKeyName(1, "1.png");
     46             this.imageList1.Images.SetKeyName(2, "2.png");
     47             this.imageList1.Images.SetKeyName(3, "3.png");
     48             this.imageList1.Images.SetKeyName(4, "4.png");
     49             this.imageList1.Images.SetKeyName(5, "5.png");
     50             this.imageList1.Images.SetKeyName(6, "6.png");
     51             this.imageList1.Images.SetKeyName(7, "7.png");
     52             this.imageList1.Images.SetKeyName(8, "8.png");
     53             this.imageList1.Images.SetKeyName(9, "9.png");
     54             this.imageList1.Images.SetKeyName(10, "10.png");
     55             this.imageList1.Images.SetKeyName(11, "11.png");
     56             this.imageList1.Images.SetKeyName(12, "12.png");
     57             this.imageList1.Images.SetKeyName(13, "13.png");
     58             this.imageList1.Images.SetKeyName(14, "14.png");
     59             this.imageList1.Images.SetKeyName(15, "15.png");
     60             this.imageList1.Images.SetKeyName(16, "16.png");
     61             this.imageList1.Images.SetKeyName(17, "17.png");
     62             this.imageList1.Images.SetKeyName(18, "18.png");
     63             this.imageList1.Images.SetKeyName(19, "19.png");
     64             // 
     65             // label1
     66             // 
     67             this.label1.Dock = System.Windows.Forms.DockStyle.Top;
     68             this.label1.Image = global::HZH_Controls.Properties.Resources.loading;
     69             this.label1.Location = new System.Drawing.Point(0, 0);
     70             this.label1.Name = "label1";
     71             this.label1.Size = new System.Drawing.Size(276, 196);
     72             this.label1.TabIndex = 0;
     73             // 
     74             // timer1
     75             // 
     76             this.timer1.Interval = 20;
     77             this.timer1.Tick += new System.EventHandler(this.timer1_Tick);
     78             // 
     79             // label2
     80             // 
     81             this.label2.Dock = System.Windows.Forms.DockStyle.Top;
     82             this.label2.Font = new System.Drawing.Font("微软雅黑", 12F);
     83             this.label2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64)))));
     84             this.label2.Location = new System.Drawing.Point(0, 196);
     85             this.label2.Name = "label2";
     86             this.label2.Size = new System.Drawing.Size(276, 30);
     87             this.label2.TabIndex = 1;
     88             this.label2.Text = "处理正在进行中,请稍候...";
     89             this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
     90             // 
     91             // timer2
     92             // 
     93             this.timer2.Tick += new System.EventHandler(this.timer2_Tick);
     94             // 
     95             // FrmWaiting
     96             // 
     97             this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
     98             this.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
     99             this.ClientSize = new System.Drawing.Size(276, 244);
    100             this.Controls.Add(this.label2);
    101             this.Controls.Add(this.label1);
    102             this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
    103             this.IsFullSize = false;
    104             this.Name = "FrmWaiting";
    105             this.Opacity = 0D;
    106             this.RegionRadius = 20;
    107             this.ShowIcon = false;
    108             this.ShowInTaskbar = false;
    109             this.Text = "";
    110             this.TopMost = true;
    111             this.TransparencyKey = System.Drawing.Color.FromArgb(((int)(((byte)(247)))), ((int)(((byte)(247)))), ((int)(((byte)(247)))));
    112             this.VisibleChanged += new System.EventHandler(this.FrmWaiting_VisibleChanged);
    113             this.ResumeLayout(false);
    114 
    115         }
    116 
    117         #endregion
    118 
    119         private System.Windows.Forms.ImageList imageList1;
    120         private System.Windows.Forms.Label label1;
    121         private System.Windows.Forms.Timer timer1;
    122         private System.Windows.Forms.Label label2;
    123         private System.Windows.Forms.Timer timer2;
    124 
    125 
    126     }
    127 }
    View Code

    主要就是现实一个gif图片和一个文本

    用处及效果

    用途:一般用在多线程耗时操作时等待显示

    效果:

    最后的话

    如果你喜欢的话,请到 https://gitee.com/kwwwvagaa/net_winform_custom_control 点个星 星吧

  • 相关阅读:
    从程序员到技术总监,分享10年开发经验
    CF739E Gosha is hunting
    hdu 4891 模拟
    hdu4888 最大流(构造矩阵)
    hdu4888 最大流(构造矩阵)
    hdu4885 有 限制的最短路
    hdu4885 有 限制的最短路
    hdu4884 模拟
    hdu4884 模拟
    POJ1789简单小生成树
  • 原文地址:https://www.cnblogs.com/bfyx/p/11364072.html
Copyright © 2011-2022 走看看