我正在使用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);
}
}
答案 0 :(得分:0)
新控件可能会从Form_KeyAmountPressed方法中窃取按键,因为它现在具有焦点并接收事件KeyPress。
一个简单的解决方法是在按钮的KeyPress事件中添加方法Form_KeyAmountPressed
。还要尝试将按钮的TabStop属性设置为false。 (当按钮是唯一可以关注用户控件的控件时,不确定这是否有效。)