我用C#写控件(带空值提示的文本框)

原创 2007年10月03日 11:09:00
我写了5年的应用程序了。客户的输入界面逻辑一直很烦人。
 
“为什么程序老是提示我没有输入完整的关键数据。能不能不检测这一步和提示”,“这个框一定要输入吗?我不知道!”有些客户经常会给我来电这样说。我只能一次一次的给他们做解释“说明书上已经说了,这是你们业务上要求要输入的关键数据,是必要的唯一性检测。”。
 
后来我自己用C#写了这个控件,可以在输入的文本框中当没有输入任何值时,会有“<关键值>”、“”等等。用户一看就知道,这里必须要他输入。
 
代码如下:

    public class TextBox : System.Windows.Forms.TextBox
    {

        //转载时请自觉加上以下转载信息:

        /*王伟晔编写代码段

        * cgzwwy@126.com

         */
        public TextBox()
            : base()
        {
            processDefaultValue();
        }

        protected override void OnVisibleChanged(EventArgs e)
        {
            base.OnVisibleChanged(e);
            processDefaultValue();
        }

        protected override void OnMouseClick(System.Windows.Forms.MouseEventArgs e)
        {
            base.OnMouseClick(e);
            base.SelectAll();
        }

        private System.String strEmptyValue = System.String.Empty;
        public System.String EmptyValue//记录空值的表现
        {
            get { return strEmptyValue; }
            set
            {
                if (base.Text == strEmptyValue)
                    base.Text = value.Trim();
                strEmptyValue = value.Trim();
                processDefaultValue(); }
        }

        protected override void OnValidating(System.ComponentModel.CancelEventArgs e)//覆盖TextBox验证处理
        {
            processDefaultValue();
            base.OnValidating(e);
        }

        public override string Text//覆盖Text属性
        {
            get
            {
                return base.Text.Trim() == strEmptyValue.Trim() ? System.String.Empty : base.Text.Trim();
            }
            set
            {
                base.Text = value;
                processDefaultValue();
            }
        }

        void processDefaultValue()//处理表现空值的方法
        {
            base.Text = base.Text.Trim().Length <= 0 ? strEmptyValue : base.Text.Trim();
        }
    }

   

我用C#写控件(带空值提示的文本框)

我写了5年的应用程序了。客户的输入界面逻辑一直很烦人。 “为什么程序老是提示我没有输入完整的关键数据。能不能不检测这一步和提示”,“这个框一定要输入吗?我不知道!”有些客户经常会给我来电这样说。我只能...
  • andylaufzf
  • andylaufzf
  • 2007年10月08日 08:58
  • 317

C# TextBox带提示说明的搜索输入框

场景: 对于输入框,如果用户不知道要输入什么,这个时候有个提示是最好了, 下面是带提示说明的搜搜输入框,如图...
  • taoerit
  • taoerit
  • 2015年01月27日 13:17
  • 3714

.net WinForm用户控件开发--(1)带按钮的textbox控件

今天大家一同学习下.net winform中用户控件的开发,这一节给大家演示一个带下划线和按钮的textbox控件,我们先来看下效果图吧!                   下面我们来演示下怎...
  • zx13525079024
  • zx13525079024
  • 2012年07月23日 09:59
  • 4756

c# 文本框控件与标签控件

文本框控件与标签控件 一、  文本框控件。 文本框控件通常用于接收用户的输入或者显示文字,该控件使用TextBox类封装,它可以编辑单行或多行文本。 使用方式 TextBox tb = new ...
  • bcb_521
  • bcb_521
  • 2012年08月02日 12:57
  • 4758

C# textbox提示文字

看了半天textbox属性好像没有提示文字这块的 那么就自己来实现一下 主要是一个变量,两个函数 Boolean textboxHasText = false;//判断输入框是否有文本 然后两...
  • program_thinker
  • program_thinker
  • 2015年01月06日 17:58
  • 10150

C#中TextBox水印提示的实现过程

C#项目开发中在设计登录界面时,经常会遇到TextBox的水印提示要求。这里简单描述一下项目在实现水印提示的过程设置。如下图图1所示。 图1  窗体布局 一、窗体布局(如图1所示) ...
  • qq_30507287
  • qq_30507287
  • 2016年05月31日 09:50
  • 1879

自己动手用c#写控件

自己动手用c#写控件                                                                 willsound(willsound@163.c...
  • Uncommon
  • Uncommon
  • 2004年10月09日 04:06
  • 2466

C#窗体控件简介-文本框控件TextBox

在希望用户输入程序员在设计阶段不知道的文本(如用户的姓名)时,应使用文本框。文本框的主要用途是让用户输入文本,用户可以输入任何字符,也可以限制用户只输入数值。文本框(TextBox)的作用是实现程序与...
  • oyf421102
  • oyf421102
  • 2011年06月22日 17:16
  • 2799

文本框输入下拉智能提示---sql

新手第一次写 一个文本框输入文字后智能提示相似的项在下面显示。   C#  code: using System; using System.Collections.Generic; usi...
  • naruto517308294
  • naruto517308294
  • 2012年12月12日 17:41
  • 1320

自己动手用c#写控件

平时比较喜欢使用delphi,小生不才,我随然喜欢delphi,平时开发(至少现在)多用delphi,但是不怕各位高手笑话,我没有用delphi写过控件,虽然原理上知道,但总感觉不知无从下手:L ...
  • laolaowhn
  • laolaowhn
  • 2007年07月23日 17:53
  • 1423
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我用C#写控件(带空值提示的文本框)
举报原因:
原因补充:

(最多只允许输入30个字)