《转》KeyEventArgs 的 SuppressKeyPress属性
如果键事件不应该发送到该控件,则为 true;否则为 false。
为了阻止用户输入,可在 KeyDown 之类的事件处理程序中为此属性分配 true。
将 SuppressKeyPress 设置为 true 也会将 Handled 设置为 true。
public partial class NumberTextBox : TextBox
{
protected override void OnKeyDown(KeyEventArgs e)
{
int keyCode = (int)e.KeyCode;
e.SuppressKeyPress = !(
(keyCode > 47 && keyCode < 58) // 48-57 is key of 0-9
|| (keyCode > 95 && keyCode < 106) // 96-105 is key of 0-9
|| e.KeyCode == Keys.Back || e.KeyCode == Keys.Delete // back space , delete
|| e.KeyCode == Keys.Left || e.KeyCode == Keys.Right // left , right
|| (e.Control && e.KeyCode == Keys.C) // copy
|| (e.Control && e.KeyCode == Keys.V) // paste
|| (e.Control && e.KeyCode == Keys.X) // cut
|| (e.Shift && e.KeyCode == Keys.Home)
|| (e.Shift && e.KeyCode == Keys.End)
);
base.OnKeyDown(e);
}
}
列2: 大写控件
public partial class UpperTextBox : TextBox
{
protected override void OnTextChanged(EventArgs e)
{
if (!string.IsNullOrEmpty(this.Text))
{
int pos = this.SelectionStart;
this.Text = this.Text.ToUpper();
this.SelectionStart = pos;
}
base.OnTextChanged(e);
}
}