2012-04-01 6 views
0

フォーム内にWindowsフォームを使用しています。2つのラベル付きのユーザーコントロールがあります.1つはメッセージの入力量があり、もう1つはユーザーが入力した値を入れていますあなたがATMに行くときのように)それは番号を表示し始める。私はユーザーコントロール上の他のコントロールを持っていない場合は正常に動作します..しかし、私はそれが動作しないボタンを追加する瞬間、私は数字のキーパッドを使用します..しかし、私はそれが再び動作するように任意のボタンを削除...私のユーザーコントロールコードはここにあります。今、それがフォーカスを持っているし、イベントKeyPressイベントを受け取るためボタンまたはリンクを追加するフォーム

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

はおそらく、新しいコントロールは、あなたのForm_KeyAmountPressed方法からキー操作を盗みます。
簡単な回避策は、Form_KeyAmountPressedメソッドをボタンのKeyPressイベントにも追加することです。また、ボタンのTabStopプロパティをfalseに設定してみてください。 (ボタンがユーザコントロールにフォーカスを当てることができる唯一のコントロールである場合、これが何らかの効果を持つかどうかはわかりません)。

関連する問題