c#里怎么重写控件的响应函数
1个回答
展开全部
具体控件你也没说,我拿Textbox控件为例
一个Textbox,我只想让它接受数字输入,但是添加OnKeyPress等事件不会屏蔽Textbox控件的默认处理,也就是说如果输入字母还是会显示出来,如何屏蔽呢? 注意:这里说的是WinForm里的情况:
从TextBox集成,然后这样写:
using System.Windows.Forms;
namespace YourNamespace {
public class NumOnlyText : System.Windows.Forms.TextBox {
public NumOnlyText() {
}
private const int WM_CHAR=0x102; //继承ProcessKeyMessage
protected override bool ProcessKeyMessage(ref Message m) {
base.ProcessKeyMessage(ref m); //如果不是WM_CHAR就不管
if (m.Msg!=WM_CHAR)
return false;
if ((m.WParam.ToInt32()<'0')||(m.WParam.ToInt32()>'9'))
//如果不是数字,那么什么都不做,返回
return true;
else//否则,告诉系统需要处理WM_CHAR事件。
return false;
}
}
}
看懂了没有
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询