アプリ版:「スタンプのみでお礼する」機能のリリースについて

開発言語:VS2008・C#
VS2008・C#で郵便番号や電話番号を入力できるユーザコントロールを作成しています。
入力フィールドはTEXTBOX、区切り文字はLABELで、
郵便番号なら3桁 + 区切り文字(-) + 4桁
電話番号なら3桁 + 区切り文字(-) + 4桁 + 区切り文字(-) + 4桁
といった感じで、プロパティで設定された値により、動的に入力フィールドのTEXTBOXを作成しています。
上記のユーザコントロールをフォームに配置し、ENTERキーでフォーカスを移動させたいのですが、現時点で、ユーザコントロール内のTEXTBOXでENTERを押した場合フォーカスはユーザコントロール内の次のTEXTBOXに移動するのですが、最後のTEXTBOXでENTERキーを押した場合ユーザコントロールからフォーカスが移動しなくなってしまいます。
例)住所フィールド(TEXTBOX)→ENTER押下→郵便番号(ユーザコントロール)の上3桁フィールド→ENTER押下→郵便番号(ユーザコントロール)の下4桁フィールド→ENTER押下(フォーカスが次のコントロールに移動しない)
ユーザコントロール内のENTERキー移動はKeyDownイベントに関連付け行っていますが、これだとユーザコントロール内しかENTERでフォーカスが移動せずフォーム上の次のコントロールにフォーカスが移動しません。
どなたか、ENTERキーでユーザコントロールからフォーカスが移動できる方法を教えてください。

A 回答 (2件)

KeyEventargsのSuppressKeyPressをtrueに設定してみてください



当方のWinXP Pro SP3では 警告音が鳴らないみたいですが ・・・
    • good
    • 0

下4桁のKeyDownイベントを


if ( e.KeyValue == 13 )
{
  e.Handled = true;
  this.Parent.GetNetxtControl( this, true );
}
といった具合に 親の中で次のコントロールといった具合に呼び出してやればいいように思います
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
上記方法を参考に下4桁のKeyDownイベントに処理を加えたところ解決しました。
追加で質問なのですが、ENTERでタブ移動した際、警告音が鳴ってしまいます。各KeyDownイベント後にe.Handled = true;にしているのですが。それでも警告音が消えません。対応法など知っていましたら御教授願います。

お礼日時:2008/08/25 15:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!