为什么80%的码农都做不了架构师?>>>   

自定义控件中只放了一个TextBox控件,并在TextBox下利用自定义控件的Paint画了一条线,然后给TextBox做了3个自定义属性,分别是TextBoxText属性,方便取值;IntBool属性,是否只输入正整数;inputDecimal是否只能输入小数。

以下是整个自定义控件的源代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Text.RegularExpressions;namespace GCIMS.CommonCtrl
{public partial class ctrlUnderlineTextBox : UserControl{#region 属性/// <summary>/// 控件的文本/// </summary>[Description("文本值"), Browsable(true), Category("自定义属性")]public string TextBoxText{get{return textBox.Text;}set{textBox.Text = value;}}private bool intBool;/// <summary>/// 只输入正整数/// </summary>[Description("只输入正整数"), Browsable(true), Category("自定义属性"), DefaultValue(false)]public bool IntBool{get{return intBool;}set{intBool = value;if (intBool){textBox.KeyPress += new KeyPressEventHandler(IntBool_KeyPress);}}}private bool inputDecimal;/// <summary>/// 只输入小数/// </summary>[Description("只输入小数"), Browsable(true), Category("自定义属性"), DefaultValue(false)]public bool InputDecimal{get{return inputDecimal;}set{inputDecimal = value;if (inputDecimal){textBox.KeyPress += new KeyPressEventHandler(InputDecimal_KeyPress);}}}#endregion#region 构造函数public ctrlUnderlineTextBox(){InitializeComponent();}#endregion#region 事件-ctrlUnderlineTextBox_KeyPressprivate void IntBool_KeyPress(object sender, KeyPressEventArgs e){if ((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57 && textBox.Text.Length < 18 || (int)e.KeyChar == 8) //只能输入0-9数字和BackSpace{e.Handled = false;}else{e.Handled = true;}}#endregion#region 事件-InputDecimal_KeyPressprivate void InputDecimal_KeyPress(object sender, KeyPressEventArgs e){//搜索字符串中的'.'字符string textBoxStr = textBox.Text;Regex rg = new Regex(".");MatchCollection mc = rg.Matches(textBoxStr);int textBoxCount = mc.Count;//允许输入数字,小数点,退格键,不允许输入大于18为的数字,不允许输入两个小数点if ((int)e.KeyChar >= 48 && (int)e.KeyChar <= 57 && textBox.Text.Length < 18 || (int)e.KeyChar == 8 || e.KeyChar == '.' && textBoxCount <= 1) //只能输入0-9数字和BackSpace{e.Handled = false;}else{e.Handled = true;}}#endregion#region 事件-CtrlUnderlineTextBox_Paintprivate void CtrlUnderlineTextBox_Paint(object sender, PaintEventArgs e){Graphics g = Graphics.FromHwnd(this.Handle);System.Drawing.Pen pen = new Pen(Color.Black);PointF point1 = new PointF(textBox.Location.X, textBox.Location.Y + textBox.Height);PointF point2 = new PointF(textBox.Location.X + textBox.Width, textBox.Location.Y + textBox.Height);g.DrawLine(pen, point1, point2);}#endregion}
}

转载于:https://my.oschina.net/dongri/blog/610931

自定义控件只允许输入Decimal和int类型字符串相关推荐

  1. 实验五:任意输入10个int类型数据,排序输出,再找出素数

    一.实验代码如下: 1 /*本程序用来任意输入10个int类型数据,排序输出,再找出素数*/ 2 3 package jiangli; 4 5 import java.util.Scanner; 6 ...

  2. 五、任意输入10个int类型数据,排序输出,再找出素数

    一.按由大到小的顺序输出10int型数据 输出结果: 二.输出素数 输出结果: 三.数组知识点 1.数组的定义 数组是一种数据结构,用来储存同一类型的集合.通过一个整型下标可以访问数组中的每一个值. ...

  3. Java中同时输入字符串和int类型出错的处理方式

    在Java中,如果输入int类型和字符串处理不当会产生错误,例如:如果先输入int类型,在输入字符串类型,如下代码: Scanner sc=new Scanner(System.in);int a=s ...

  4. ASP.Net TextBox控件只允许输入数字

    原文:ASP.Net TextBox控件只允许输入数字 1.1.在Asp.Net TextBox 控件的 OnKeyPress 事件中指定输入键盘码必须为数字: <asp:TextBox ID= ...

  5. getchar返回int类型

    #include <stdio.h> /* copy input to output; 2nd version */ main() { int c; c = getchar(); whil ...

  6. android 只输入数字与小数点_Android金额输入框只允许输入小数点后两位效果

    一:要实现这个效果也不是很复杂,只需要设置输入框输入的字符类型.设置InputFilter.设置输入变化监听即可.下面直接来看代码吧-. 二:new 一个class extends AppCompat ...

  7. int类型存小数 mysql_2020年最新版MySQL面试题(一)

    数据库基础知识 一.为什么要使用数据库 1.数据保存在内存 优点:存取速度快 缺点:数据不能永久保存 2.数据保存在文件 优点:数据永久保存 缺点:①速度比内存操作慢,频繁的IO操作:②查询数据不方便 ...

  8. int类型存小数 mysql_MySQL面试题-数据类型

    mysql有哪些数据类型 · 1.整数类型,包括TINYINT.SMALLINT.MEDIUMINT.INT.BIGINT,分别表示1字节.2字节.3字节.4字节.8字节整数.任何整数类型都可以加上U ...

  9. flutter TextField 限制只允许输入数字 小数点

    也许你迷茫,但是我想说,在你迷茫的同时,保持本心,过好今天就好. 核心代码片段 //只允许输入小数inputFormatters: [FilteringTextInputFormatter.allow ...

最新文章

  1. 一行js_Node.js 一行命令上传本地文件到服务器
  2. C#的简单不安全双向“混淆”
  3. clickhouse 新增列_ClickHouse入门记录
  4. python读取word中后缀名docx的文件的表格
  5. bubble气泡特效
  6. JavaScript-创建日志调试对象(面向对象实例)
  7. java登录界面命令_Java命令行界面(第30部分):观察
  8. OllyDbg笔记-软件逆向调试技巧
  9. 2014.12.03 页面控件
  10. 方法论+本土特色,这个BPM平台不简单
  11. 上海工程技术大学c语言商店存货管理系统,商店存货管理系统课程设计.doc
  12. 教育教学教师竞聘说课PPT模板
  13. SD内存卡禁止写入只读怎么办?另类SPI模式修复坏卡
  14. Sim Lock —— 手机Network锁
  15. 携程酒店评论EDA及词云展示—数据来自和鲸社区
  16. SSL2895 购买干草
  17. 计算机开机最快,你电脑开机要多久?4招让你的电脑开机速度比之前快几倍
  18. UE5 QRCode插件使用
  19. sqli-labs靶场challenges第54-75关(超详细)
  20. UNIAPP----仿淘宝详情页滚动

热门文章

  1. 全球及中国认知文档处理行业运营策略与应用前景分析报告2022版
  2. JAVA-最常用的A题语法
  3. 大页(Huge Page)简单介绍
  4. Kafka学习之路 (三)Kafka的高可用
  5. 2.Linux技能要求
  6. ELASTIC的备份与恢复
  7. Android笔记(二十五) ListView的缓存机制与BaseAdapter
  8. [转]Java 关闭线程的安全方法
  9. 一个Quake2的世界浏览器DEMO(附源码)
  10. .NET Compact Framework s60v3(在S60上运行Windows Mobile程序)