日期:2014-05-18  浏览次数:21351 次

TextBox中,如何判断Ctrl键和C键同时按下?
指定一个TextBox 可以录入数字,也可以从其它地方拷贝
C# code

        private void txtArrears_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (((e.KeyChar >= '0') && (e.KeyChar <= '9')) || (e.KeyChar == '.') || (e.KeyChar == (char)8) )
            {
                e.Handled = false;
            }
            else
            {
                e.Handled = true ;
            }
        }


我使用上面的代码后,Ctrl+C和Ctrl+V都被屏蔽了,我是允许粘贴和复制的!

------解决方案--------------------
参考如下代码
C# code
private void txtArrears_KeyPress(object sender, KeyPressEventArgs e)
{
    if ((Control.ModifierKeys & Keys.Control) == Keys.Control) return;
    e.Handled = !(((e.KeyChar >= '0') && (e.KeyChar <= '9')) || 
        (e.KeyChar == '.') || (e.KeyChar == (char)8));
}

------解决方案--------------------
那个判断还可以简化为:
C# code
e.Handled = "0123456789.\x8".IndexOf(e.KeyChar) < 0;

------解决方案--------------------
onkeypress事件,写一小段JS代码即可
------解决方案--------------------
友情提示:鼠标的动作也要考虑,比如右键的粘帖,直接拖过来的数据等等~~~~~