添加按钮或链接中断表单

时间:2012-04-01 08:57:12

标签: c# webforms

我正在使用Windows窗体,在表单中我有一个带有两个标签的用户控件,一个有一个消息ENTER AMOUNT,另一个用于输入用户键入的值(比如当你去ATM时) )它开始显示数字..它工作正常,如果我没有任何其他控件的用户控件..但是当我添加一个按钮它不起作用的时刻,它不会开始显示数字,因为我使用我的数字键盘。但是,如果我删除我添加的任何按钮,它再次起作用......这是我的用户控制代码。

 public partial class OperationAmount : UserControl
    {
        public OperationAmount()
        {
            InitializeComponent();
        }

        private int _inputNumber = 0;

        private void OperationAmount_Load(object sender, EventArgs e)
        {
        }

        private void Form_KeyAmountPressed(object sender, KeyPressEventArgs e)
        {
            if (!Char.IsNumber(e.KeyChar))
            {
                return;
            }
            else if (lblOperationAmount.Text.Length > 9)
            {
                return;
            }
            else
            {
                _inputNumber = 10 * _inputNumber + Int32.Parse(e.KeyChar.ToString());
                ReformatOutput();
            }
        }

        private void ReformatOutput()
        {
            lblOperationAmount.Text = String.Format("{0:0.00}", (double)_inputNumber / 100.0);
        }

    }

1 个答案:

答案 0 :(得分:0)

新控件可能会从Form_KeyAmountPressed方法中窃取按键,因为它现在具有焦点并接收事件KeyPress。
一个简单的解决方法是在按钮的KeyPress事件中添加方法Form_KeyAmountPressed。还要尝试将按钮的TabStop属性设置为false。 (当按钮是唯一可以关注用户控件的控件时,不确定这是否有效。)