关于TEXTBOX的验证数字输入 自定义然后手工修改基类为 TextBox 可不可以 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 using System.Windows.Forms;using System.Runtime.InteropServices;using System.ComponentModel;using System.Windows.Forms.Design;namespace CustomControls{ /// <summary> /// Summary description for NumbersOnlyTextBox. /// </summary>// [Designer(typeof(NumbersOnlyTextBox.NumbersOnlyTexboxDesigner))] public class NumbersOnlyTextBox:System.Windows.Forms.TextBox { public NumbersOnlyTextBox() { // // TODO: Add constructor logic here // } #region Static Fields //TODO:调用winapi,使键盘输入时发出声音 [DllImport("user32.dll")] private static extern bool MessageBeep(uint uType); #endregion #region Method Overrides //TODO:重写键盘敲击发声 protected override bool ProcessKeyEventArgs(ref Message m) { int keyValue=m.WParam.ToInt32(); // keyValue>47&&<58 : 0-9 // keyValue=46 : Decimal Point // keyValue>34&& keyValue<41 :Home ,End and Arrow Keys // keyValue==8 :Backspace Key if ( (keyValue>47&&keyValue<58)||(keyValue==46)||(keyValue>34&&keyValue<41)||(keyValue==8) ) { return base.ProcessKeyPreview(ref m); //返回击键,以正常程序处理 } else { //delete key if (m.Msg==256&&keyValue==46) { return base.ProcessKeyPreview(ref m); //返回击键,以正常程序处理 } if (m.Msg==258) { MessageBeep(16); } return true; } } #endregion//// #region Internal Classes// internal class NumbersOnlyTexboxDesigner:ControlDesigner// {// protected override void PostFilterProperties(System.Collections.IDictionary properties)// {// properties.Remove("Text");// }// }//// #endregion }} public class TextMoney:System.Windows.Forms.TextBox { public TextMoney() { // // TODO: 在此处添加构造函数逻辑 // } private void InitializeComponent() { // // TextMoney // } protected override void OnKeyPress( System.Windows.Forms.KeyPressEventArgs e) { if(e.KeyChar==8) { return; } if(e.KeyChar=='.' && this.Text.IndexOf('.')==-1) { return; } if(!char.IsNumber(e.KeyChar)) { e.Handled=true; } base.OnKeyPress(e); } } 如何 取出 ushort 的高字节和低字节?? 关于C++ 类似金山词霸一样的取词窗口(不是取词,只要求那样的提示窗口) 使用socket的connected属性时的疑惑 怎么能通过Click事件调用onpaint C#中发送消息SendMessage中参数问题 在断开连接情况下签出后,无法签入,如何解决 如何从一个aspx网站中post数据 关于循环的问题 咨询开发财务软件的事情 急求c#下联接、操作数据库的通用接口及其实现方案 哪位大侠有C# 的电子书。我的油箱是:[email protected] 谢谢
using System.Runtime.InteropServices;
using System.ComponentModel;
using System.Windows.Forms.Design;namespace CustomControls
{
/// <summary>
/// Summary description for NumbersOnlyTextBox.
/// </summary>
// [Designer(typeof(NumbersOnlyTextBox.NumbersOnlyTexboxDesigner))]
public class NumbersOnlyTextBox:System.Windows.Forms.TextBox
{
public NumbersOnlyTextBox()
{
//
// TODO: Add constructor logic here
//
} #region Static Fields //TODO:调用winapi,使键盘输入时发出声音
[DllImport("user32.dll")]
private static extern bool MessageBeep(uint uType); #endregion #region Method Overrides
//TODO:重写键盘敲击发声
protected override bool ProcessKeyEventArgs(ref Message m)
{
int keyValue=m.WParam.ToInt32();
// keyValue>47&&<58 : 0-9
// keyValue=46 : Decimal Point
// keyValue>34&& keyValue<41 :Home ,End and Arrow Keys
// keyValue==8 :Backspace Key if ( (keyValue>47&&keyValue<58)||(keyValue==46)||(keyValue>34&&keyValue<41)||(keyValue==8) )
{
return base.ProcessKeyPreview(ref m); //返回击键,以正常程序处理
}
else
{
//delete key
if (m.Msg==256&&keyValue==46)
{
return base.ProcessKeyPreview(ref m); //返回击键,以正常程序处理
} if (m.Msg==258)
{
MessageBeep(16);
}
return true;
} }
#endregion
//
// #region Internal Classes
// internal class NumbersOnlyTexboxDesigner:ControlDesigner
// {
// protected override void PostFilterProperties(System.Collections.IDictionary properties)
// {
// properties.Remove("Text");
// }
// }
//
// #endregion
}
}
{
public TextMoney()
{
//
// TODO: 在此处添加构造函数逻辑
//
} private void InitializeComponent()
{
//
// TextMoney
//
}
protected override void OnKeyPress( System.Windows.Forms.KeyPressEventArgs e)
{
if(e.KeyChar==8)
{
return;
}
if(e.KeyChar=='.' && this.Text.IndexOf('.')==-1)
{
return;
}
if(!char.IsNumber(e.KeyChar))
{
e.Handled=true;
}
base.OnKeyPress(e);
}
}