《转》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);
        }
    }

posted @ 2012-09-01 15:35  bingoupppppp  阅读(230)  评论(0)    收藏  举报