100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| 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;
 | ||
| 
 | ||
| namespace AIMS.OremrUserControl
 | ||
| {
 | ||
|     public partial class NumTextBox : TextBox
 | ||
|     {
 | ||
|         /// <summary> 
 | ||
|         /// 必需的设计器变量。
 | ||
|         /// </summary>
 | ||
|         private System.ComponentModel.IContainer components = null;
 | ||
| 
 | ||
|         /// <summary> 
 | ||
|         /// 清理所有正在使用的资源。
 | ||
|         /// </summary>
 | ||
|         /// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
 | ||
|         protected override void Dispose(bool disposing)
 | ||
|         {
 | ||
|             if (disposing && (components != null))
 | ||
|             {
 | ||
|                 components.Dispose();
 | ||
|             }
 | ||
|             base.Dispose(disposing);
 | ||
|         }
 | ||
| 
 | ||
|         #region 组件设计器生成的代码
 | ||
| 
 | ||
|         /// <summary> 
 | ||
|         /// 设计器支持所需的方法 - 不要
 | ||
|         /// 使用代码编辑器修改此方法的内容。
 | ||
|         /// </summary>
 | ||
|         private void InitializeComponent()
 | ||
|         {
 | ||
|             this.SuspendLayout();
 | ||
|             // 
 | ||
|             // NumTextBox
 | ||
|             // 
 | ||
|             this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.NumTextBox_KeyPress);
 | ||
|             this.ResumeLayout(false);
 | ||
| 
 | ||
|         }
 | ||
| 
 | ||
|         #endregion
 | ||
| 
 | ||
|         public NumTextBox()
 | ||
|         {
 | ||
|             InitializeComponent();
 | ||
|         }
 | ||
|         private void NumTextBox_KeyPress(object sender, KeyPressEventArgs e)
 | ||
|         {
 | ||
|             TextBox tb = sender as TextBox;
 | ||
|             int n = tb.Text.LastIndexOf(".");
 | ||
|             int j = tb.Text.LastIndexOf("-");
 | ||
|             if (e.KeyChar < 48 || e.KeyChar > 57)
 | ||
|             {
 | ||
|                 if (e.KeyChar != 46 && e.KeyChar != 8 && e.KeyChar != 13)
 | ||
|                 {
 | ||
|                     e.Handled = true;
 | ||
|                 }
 | ||
|                 if (e.KeyChar == 45 && j != -1)
 | ||
|                 {
 | ||
|                     e.Handled = true;
 | ||
|                 }
 | ||
|             }
 | ||
|             if (e.KeyChar == 46 && n >= 0)
 | ||
|             {
 | ||
|                 e.Handled = true;
 | ||
|             }
 | ||
|             //if (e.KeyChar == 13)
 | ||
|             //{
 | ||
|             //    SendKeys.Send("{tab}");
 | ||
|             //}
 | ||
|             if (e.KeyChar == 8)
 | ||
|             {
 | ||
|                 return;
 | ||
|             }
 | ||
| 
 | ||
| 
 | ||
|             if (n < 0 && tb.Text.Length > 5)
 | ||
|             {
 | ||
|                 e.Handled = true;
 | ||
|             }
 | ||
|             if (tb.Text.Length > 7)
 | ||
|             {
 | ||
|                 e.Handled = true;
 | ||
|             }
 | ||
|             if (n > 0 && n < tb.Text.Length - 2)
 | ||
|             {
 | ||
|                 e.Handled = true;
 | ||
|             }
 | ||
|         }
 | ||
|     }
 | ||
| }
 |