|
|
||||
Tips > |
|||||
Enter キーを Tab キーとしてエミュレート |
更新 : 2010/05/11 |
||||
|
|
||
解説: 通常、Edit などでは文字を入力後、タブキーを押下すると次のコントロールに移動します。これでも使えますが、文字入力後、リターンキーを押してコントロールの移動ができれば、なお便利になります。 方法としては、リターンキーを押したら、タブキーを押したのと同じ動きになるようにコーディングすれば上手くいきそうです。 では、具体的にどのようにすれば記述すれば良いでしょう? ここでは FindNextControl を使って対応してみます。 使用例: 以下の例では、Enter キーを押下すると Edit1 から Button1 にフォーカスが移動します。 準備として、Edit, Button を適当に配置しておきます。 アプリケーションを起動して、Enter キーを押してください。 OnKeyPress イベントで FindNextControl メソッドが呼び出され、フォーカスが Button1 に移ります。FindNextControl メソッドの第二引数に true を渡すと、タブ順で次のコントロールを見つけてくれます。 簡単な例でしたので、もう少しコントロールを増やして、フォーカスの移動を試しておいてください。 //------------------------------------------------------------------- void __fastcall TForm1::Edit1KeyPress(TObject *Sender, char &Key) { if (Key == '\r') FindNextControl(Edit1, true, true, false)->SetFocus(); } //------------------------------------------------------------------- |