首页技术textbox控件(winform之textBox)

textbox控件(winform之textBox)

编程之家2024-01-31120次浏览

一、Winform 的所有TextBox 的TextChange事件

自定义一个新的TextBox控件,派生自TextBox控件,重载需要的方法和事件,修改所有文本框基于新的TextBox控件。下面是一个自定义TextBox控件的例子:

textbox控件(winform之textBox)

TextBox控件重写之NumTextBox,主要实现的功能是,只允许输入数字,或String,Numeric,Currency,Decimal,Float,Double,Short,Int,Long等加了一个属性InputType可以设置其,还可以自己进一步扩展,因为是开源的。 public enum NumTextBoxType

{

String,//是这个的时候,什么都不处理,跟正常TextBox一样

Numeric,//只要是数字就行

Currency,

Decimal,

textbox控件(winform之textBox)

Float,

Double,

Short,

Int,

Long

}主要代码:

textbox控件(winform之textBox)

using System;

using System.Windows.Forms;

using System.ComponentModel;

using System.Text.RegularExpressions;

namespace YongFa365.Controls.NumTextBox

{

public class NumTextBox: TextBox

{

private NumTextBoxType inputType= NumTextBoxType.Numeric;

public enum NumTextBoxType

{

String,//是这个的时候,什么都不处理,跟正常TextBox一样

Numeric,//只要是数字就行

Currency,

Decimal,

Float,

Double,

Short,

Int,

Long

}

public NumTextBox()

{

this.ContextMenu= new ContextMenu();

}

[

Category("专用设置"),

DefaultValue(NumTextBoxType.Numeric),

Description("设置允许类型:\nString跟普通TextBox功能一样\nNumeric只要是数字就可以")

]

public NumTextBoxType InputType

{

get{ return inputType;}

set{ inputType= value;}

}

public override string Text

{

get{ return base.Text;}

set

{

if(IsValid(value, true))

{

base.Text= value;

}

}

}

private bool IsValid(string val, bool use)

{

bool ret= true;

if(string.IsNullOrEmpty(val))

{

return ret;

}

if(use)

{

if(val.Equals("-")&& inputType!= NumTextBoxType.Numeric)

{

return ret;

}

}

try

{

switch(inputType)

{

case NumTextBoxType.String:

break;

case NumTextBoxType.Numeric:

if(!Regex.IsMatch(val,@"^\d*$"))

{

ret= false;

}

break;

case NumTextBoxType.Currency:

decimal dec= decimal.Parse(val);

int pos= val.IndexOf(".");

if(pos!=-1)

{

ret= val.Substring(pos).Length<= 3;

}

break;

case NumTextBoxType.Float:

float flt= float.Parse(val);

break;

case NumTextBoxType.Double:

double dbl= double.Parse(val);

break;

case NumTextBoxType.Decimal:

decimal dec2= decimal.Parse(val);

break;

case NumTextBoxType.Short:

short s= short.Parse(val);

break;

case NumTextBoxType.Int:

int i= int.Parse(val);

break;

case NumTextBoxType.Long:

long l= long.Parse(val);

break;

default:

throw new ApplicationException();

}

}

catch

{

ret= false;

}

return ret;

}

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)

{

if(keyData==(Keys)Shortcut.CtrlV|| keyData==(Keys)Shortcut.ShiftIns)

{

IDataObject iData= Clipboard.GetDataObject();

string newText;

newText= base.Text.Substring(0, base.SelectionStart)

+(string)iData.GetData(DataFormats.Text)

+ base.Text.Substring(base.SelectionStart+ base.SelectionLength);

if(!IsValid(newText, true))

{

return true;

}

}

return base.ProcessCmdKey(ref msg, keyData);

}

protected override void OnLeave(EventArgs e)

{

if(!(inputType== NumTextBoxType.Numeric|| inputType== NumTextBoxType.String))

{

if(base.Text!="")

{

if(!IsValid(base.Text, false))

{

base.Text="";

}

else if(Double.Parse(base.Text)== 0)

{

base.Text="0";

}

}

}

base.OnLeave(e);

}

protected override void OnKeyPress(KeyPressEventArgs e)

{

if(inputType!= NumTextBoxType.String)

{

char c= e.KeyChar;

if(!Char.IsControl(c))

{

if(c.ToString()=="")

{

e.Handled= true;

return;

}

string newText= base.Text.Substring(0, base.SelectionStart)

+ c.ToString()+ base.Text.Substring(base.SelectionStart+ base.SelectionLength);

if(!IsValid(newText, true))

{

e.Handled= true;

}

}

}

base.OnKeyPress(e);

}

}

}

二、winform控件textbox怎样显示txt内容

winform控件textbox选择txt模式就可显示txt内容。WinForm控件是指以输入或操作数据的对象。比如ComponentOne是.net平台下对数据和方法的封装,有自己的属性和方法。属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能,包含在.NETFramework中的Windows窗体类旨在用于GUI开发,可以轻松创建具有适应多变的商业需求所需的灵活性的命令窗口、按钮、菜单、工具栏和其他屏幕元素。

三、怎样在winform中控制textbox的大小

有两种控制textbox大小的方法:

设计时修改

在设计窗体时,用鼠标拖动控制柄,来调节textbox的大小。在设计期间的修改最终反应到运行时的结果,因此这种方法在运行期间是固定大小的。

代码修改

如果在程序运行期间需要调整控件大小(宽度或高度),可以使用以下代码修改即可:

textBox1.Width=textbox1.Width+10;//将宽度增加10像素。

textBox1.Height=textBox1.Height+3;//将调度增加3像素。

178源(适合国人的常用的Cydia源地址搜集)matlab 2012b 下载(matlab2012b安装教程32位)