• Winform控件重写


    Winform控件重写

    因为最近的项目中越来越多的遇到了比较特殊的一些控件,有时候我们自己封装一下可能更加方便我们的使用,下面是我们项目中用到的,简单做一个记录。

    TextBox控件重写

    主要的控制代码都在WndProc中

    只能输入数字,包括小数

     1  public class FloatNumTextBox : TextBox
     2     {
     3         protected override void WndProc(ref Message m)
     4         {
     5             int WM_CHAR = 0x0102;
     6             if (m.Msg == WM_CHAR)
     7             {
     8                 if (((char)m.WParam >= '0') && ((char)m.WParam <= '9') ||
     9                 (int)m.WParam == (int)Keys.Back || (int)m.WParam == (int)Keys.Delete)
    10                 {
    11                     base.WndProc(ref m);
    12                 }
    13             }
    14             else
    15             {
    16                 base.WndProc(ref m);
    17             }
    18         }
    19     }

    只能输入整数

     1 public class IntNumTextBox :TextBox
     2     {
     3         protected override void WndProc(ref Message m)
     4         {
     5             int WM_CHAR = 0x0102;
     6             if (m.Msg == WM_CHAR)
     7             {
     8                 if (((char)m.WParam >= '0') && ((char)m.WParam <= '9') ||
     9                 (int)m.WParam == (int)Keys.Back)
    10                 {
    11                     base.WndProc(ref m);
    12                 }
    13             }
    14             else
    15             {
    16                 base.WndProc(ref m);
    17             }
    18         }
    19     }

    DataGridFView重写

    DataGridView的主要代码是因为有很多的样式不需要再重新设置了,这样可以只修改一处,即可修改整个项目中的所有DataGridView样式的显示,主要的代码起始都是在构造函数中完成

     1  public class MydataGridview :DataGridView
     2     {
     3         public MydataGridview():base()
     4         {
     5             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
     6             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle();
     7             System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
     8             this.AutoGenerateColumns = false;
     9             this.AllowUserToAddRows = false;
    10             this.AllowUserToDeleteRows = false;
    11             this.AllowUserToResizeColumns = false;
    12             this.AllowUserToResizeRows = false;
    13             dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(245)))), ((int)(((byte)(243)))), ((int)(((byte)(244)))));
    14             this.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1;
    15             this.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.Fill;
    16             this.BackgroundColor = System.Drawing.Color.White;
    17             this.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
    18             this.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
    19             dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
    20             dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(241)))), ((int)(((byte)(241)))), ((int)(((byte)(241)))));
    21             dataGridViewCellStyle2.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
    22             dataGridViewCellStyle2.ForeColor = System.Drawing.Color.Navy;
    23             dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight;
    24             dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
    25             this.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2;
    26             this.ColumnHeadersHeight = 25;
    27             this.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
    28             dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft;
    29             dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Window;
    30             dataGridViewCellStyle3.Font = new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
    31             dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.ControlText;
    32             dataGridViewCellStyle3.SelectionBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(173)))), ((int)(((byte)(214)))), ((int)(((byte)(237)))));
    33             dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.ControlText;
    34             dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.False;
    35             this.DefaultCellStyle = dataGridViewCellStyle3;
    36             this.EnableHeadersVisualStyles = false;
    37             this.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(236)))), ((int)(((byte)(233)))), ((int)(((byte)(216)))));
    38             this.Location = new System.Drawing.Point(3, 17);
    39             
    40             this.RowHeadersVisible = false;
    41             this.RowTemplate.Height = 23;
    42             this.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect;
    43             this.Size = new System.Drawing.Size(870, 354);
    44             
    45         }
    46     }
  • 相关阅读:
    UVa10917
    T^T online judge 2952
    AcWing 105.七夕祭
    AcWing 99.激光炸弹(二维前缀和)
    AcWing 97.约数之和
    AcWing 95. 费解的开关
    ccf/csp 2018 12 小明放学
    BNUOJ 33535 Final Exam Arrangement
    分块
    sublime安装配置
  • 原文地址:https://www.cnblogs.com/jswjia/p/4625660.html
Copyright © 2020-2023  润新知