数字文本控件

原创 2006年05月22日 14:50:00
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.ComponentModel;
using System.Collections;
using System.Collections.Specialized;
 
namespace PublicControls
{
     ///<summary>
     /// DateTimeBox 的摘要说明。
     ///</summary>
     public class IntTextBox : Control,IPostBackDataHandler
     {
         #region预定义
 
         private int min;
         private int max;
         private Unit width;
         private Unit height;
         private int defaultnum;
 
         ///<summary>
         ///委托页面索引事件
         ///</summary>
         public event EventHandler OnValueChanged;
 
         #endregion
        
         #region属性
        
         ///<summary>
         ///最小值
         ///</summary>
         [Description("最小值")]
         public int MinNum
         {
              get
              {
                   if(this.IsNumeric(ViewState["MinNum"]))
                   {
                       min = (int)ViewState["MinNum"];
                   }
                   return min;
              }
              set
              {
                   min = value;
                   ViewState["MinNum"] = min;
              }
         }
 
         ///<summary>
         ///最大值
         ///</summary>
         [Description("最大值")]
         public int MaxNum
         {
              get
              {
                   if(this.IsNumeric(ViewState["MaxNum"]))
                   {
                       max = (int)ViewState["MaxNum"];
                   }
                   return max;
              }
              set
              {
                   max = value;
                   ViewState["MaxNum"] = max;
              }
         }
 
         ///<summary>
         ///
         ///</summary>
         [Description("值")]
         public int DefaultNum
         {
              get
              {
                   if(this.IsNumeric(ViewState["DefaultNum"]))
                   {
                       defaultnum = (int)ViewState["DefaultNum"];
                   }
                   return defaultnum;
              }
              set
              {
                   defaultnum=value;
                   ViewState["DefaultNum"] = defaultnum;
              }
         }
 
         ///<summary>
         ///宽度
         ///</summary>
         [Description("宽度")]
         public Unit Width
         {
              get
              {
                   return width;
              }
              set
              {
                   width = value;
              }
         }
 
         ///<summary>
         ///高度
         ///</summary>
         [Description("高度")]
         public Unit Height
         {
              get
              {
                   return height;
              }
              set
              {
                   height = value;
              }
         }
         #endregion
 
         #region事件或方法
         ///<summary>
         ///数据回送事件
         ///</summary>
         ///<param name="postDataKey"></param>
         ///<param name="values"></param>
         ///<returns></returns>
         public bool LoadPostData(string postDataKey, NameValueCollection values)
         {
              if(!this.IsNumeric(values[this.UniqueID]))
              {
                   return false;
              }
             
              if(DefaultNum != int.Parse(values[this.UniqueID]))
              {
                DefaultNum = int.Parse(values[this.UniqueID]);
                  
                   if(DefaultNum>MaxNum)
                   {
                       DefaultNum = MaxNum;
                   }
                   if(DefaultNum<MinNum)
                   {
                       DefaultNum = MinNum;
                   }
                  
                   return true;
              }
 
              return false;
         }
 
         ///<summary>
         ///当由类实现时,用信号要求服务器控件对象通知 ASP.NET 应用程序该控件的状态已更改。
         ///</summary>
         public void RaisePostDataChangedEvent()
         {
             
              ValueChanged();
             
         }       
 
         ///<summary>
         ///将事件委托给所调用的页面
         ///</summary>
         public void ValueChanged()
         {
              if(OnValueChanged!=null)
              {
                   OnValueChanged(this,System.EventArgs.Empty);
              }
          }
         #endregion
 
         #region输出
         ///<summary>
         ///将此控件呈现给指定的输出参数。
         ///</summary>
         ///<param name="output">要写出到的 HTML 编写器 </param>
         protected override void Render(HtmlTextWriter output)
         {
              string view;
              view=ViewString(MinNum,MaxNum);
              output.Write(view);
         }
         #endregion
 
         #region其他函数或方法
         ///<summary>
         ///输出字符串组合
         ///</summary>
         ///<param name="min"></param>
         ///<param name="max"></param>
         ///<returns></returns>
         string ViewString(int min,int max)
         {
              string view="";
              view+="<script><!--/n";
              view+="function changetext(direction)/n";
              view+="{/n";
              view+="if(direction=='up')/n";
              view+="{/n";
              view+="if(document.all."+this.UniqueID+".value<"+max+")/n";
              view+="document.all."+this.UniqueID+".value=parseInt(document.all."+this.UniqueID+".value)+1;/n";
              view+="}/n";
              view+="else/n";
              view+="{/n";
              view+="if(document.all."+this.UniqueID+".value>"+min+")/n";
              view+="document.all."+this.UniqueID+".value=parseInt(document.all."+this.UniqueID+".value)-1;/n";
              view+="}/n";
              view+="}/n";
 
              view+="function keydown()/n";
              view+="{/n";
              view+="var KeyCode=event.keyCode;/n";
              view+="if(((KeyCode>47)&&(KeyCode<58))||(KeyCode==8)||(KeyCode==46)||(KeyCode==37)||(KeyCode==39)||(KeyCode>95&&KeyCode<106))/n";
              view+="{/n";
              view+="return true;/n";
              view+="}/n";
              view+="else/n";
              view+="{/n";
              view+="return false;/n";
              view+="}/n";
              view+="}/n";
 
              view+="function focusblur()/n";
              view+="{/n";
              view+="var num=document.all."+this.UniqueID+".value;/n";
              view+="if(num>"+MaxNum+")/n";
              view+="{/n";
              view+="document.all."+this.UniqueID+".value="+MaxNum+";/n";
              view+="}/n";
              view+="if(num<"+MinNum+")/n";
              view+="{/n";
              view+="document.all."+this.UniqueID+".value="+MinNum+";/n";
              view+="}/n";
              view+="}/n";
 
              view+="//--></script>";
 
              view+="<div><span onclick=/"changetext('down')/" style=/"BORDER-RIGHT: black thin solid; BORDER-TOP: black thin solid; BORDER-LEFT: black thin solid; CURSOR: hand; BORDER-BOTTOM: black thin solid;">6</span><input type=text id=/""+this.UniqueID+"/" name=/""+this.UniqueID+"/" value=/""+this.DefaultNum+"/" style=/"width:"+this.Width+";height:"+this.Height+"/" onkeydown=/"return keydown()/" onblur=/"focusblur()/"><span onclick=/"changetext('up')/" style=/"BORDER-RIGHT: black thin solid; BORDER-TOP: black thin solid; BORDER-LEFT: black thin solid; CURSOR: hand; BORDER-BOTTOM: black thin solid;">5</span></div>";
              return view;
         }
 
 
         ///<summary>
         ///判断是否为数字字符串
         ///</summary>
         ///<param name="obj">需验证的字符串</param>
         ///<returns>判断结果,符合条件为True,不符合条件为False</returns>
         public bool IsNumeric(object obj)
         {
 
              obj += "";
              string str = obj.ToString();
             
              //判断是否为空
              if (str == null || str.Length==0)
              {
                   return false;
              }
              //循环检查每个字符
              foreach(char c in str)
              {
                   if (!Char.IsNumber(c))
                   {
                       return false;
                   }
              }
              return true;
         }
 
         #endregion
     }
}
 
版权声明:本文为博主原创文章,未经博主允许不得转载. dawngrp.com

静态文本控件的使用

静态文本控件的使用 一般而言,静态文本框只作为静态输出控件,如果你要改变? 设想:一个静态文本控件,显示“number:”,当你用鼠标点击后 变为“数值:”,怎么办呢?   要注意一个特点,查...
  • liuzhuomju
  • liuzhuomju
  • 2012年02月29日 22:29
  • 5111

文本控件

[1]这几个都跟选区有关的,就是选中一串字符串,选中的会变蓝色 selstart就是选区的第一个字符 sellength就是选中的长度 seltext就是选中的字符了,就是这串字符串变蓝色。 比如: ...
  • Jespeer
  • Jespeer
  • 2008年12月16日 12:34
  • 270

UCGUI编程二:数值显示

例程:#include "GUI.h"void MainTask(void) { GUI_Init(); GUI_SetFont(&GUI_Font24B_ASCII); GU...
  • lgd370323
  • lgd370323
  • 2015年09月26日 10:33
  • 695

VC设置静态文本控件的显示字体和显示内容

 首先,在对话框上添加一个Static控件,关联一个控制变量m_static(不是Value,是Control) 然后,建立一个字体变量 [cpp] view plainco...
  • ac540101928
  • ac540101928
  • 2014年08月25日 09:17
  • 2150

静态文本控件类CStaticText的使用

文本是我们
  • cp32212116
  • cp32212116
  • 2014年10月22日 16:20
  • 593

MFC中改变静态文本控件字体字号和颜色的方法

本人最近正在试着学着做一个简单的MFC程序,在这个过程中有不少地方都是请教网上的大佬前辈们。做完了之后想把自己的成果也分享出来,希望能给其他人提供一些帮助。下面有不少表述都是直接摘抄于本人写的程序设计...
  • myfatmyfat
  • myfatmyfat
  • 2018年01月14日 15:09
  • 15

自定义控件——只能输入数字的文本框

大事发生的都是发生
  • zhangmeihong2
  • zhangmeihong2
  • 2015年06月14日 15:34
  • 1574

Android中的文本控件

2.1 跑马灯效果 方法一:使用上述 ellipsize = marquee 方法二:使用 Html.fromHtml( htmlStr ),htmlStr语句中使用marquee标签 ...
  • ningsun1578
  • ningsun1578
  • 2015年08月13日 22:21
  • 653

Static Text 静态文本控件

静态文本框的使用和CStatic类的成员函数简介
  • u010299768
  • u010299768
  • 2017年02月22日 14:06
  • 851

Android文本控件

一.TextView 1.作用:显示文本信息 2.主要代码示例: XML:         android:id="@+id/text"     android:layout_width...
  • xipiaoyouzi
  • xipiaoyouzi
  • 2012年08月27日 15:34
  • 682
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:数字文本控件
举报原因:
原因补充:

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