- PR -

エンターキーによるフォーカス移動について

1
投稿者投稿内容
■鳥■
会議室デビュー日: 2003/10/20
投稿数: 7
投稿日時: 2003-10-23 15:05
エンターキーを押すことによりフォーカスを移動させようと考え、
KeyPressイベントで#13を拾ってTABコードに置き換えようと思ったのですが、
C#でのPostMessageの記述の仕方がわかりません....
又、別の方法でもなにか良い方法があればご教授願えますか。
よろしくお願いします。
burton999
ぬし
会議室デビュー日: 2003/10/06
投稿数: 898
お住まい・勤務地: 東京
投稿日時: 2003-10-23 16:15
Windowsアプリケーションの話でしょうか?
そうなら、コントロールをArrayListなどで管理しておいて
エンターキーのイベントを拾ったら、
次のコントロールにフォーカスを設定すればいいのではないでしょか。
■鳥■
会議室デビュー日: 2003/10/20
投稿数: 7
投稿日時: 2003-10-23 16:48
返答ありがとうございます。
早速その方法で試してみます。
架空兎
ベテラン
会議室デビュー日: 2003/08/18
投稿数: 78
お住まい・勤務地: さいたま氏
投稿日時: 2003-10-23 17:04
ProcessTabKey メソッドを使うと次に使用できるコントロールをアクティブにできます。

・ContainerControl クラス(Form のベースクラス)の ProcessTabKey メソッド
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemwindowsformscontainercontrolclassprocesstabkeytopic.asp
■鳥■
会議室デビュー日: 2003/10/20
投稿数: 7
投稿日時: 2003-10-23 17:13
私もその後、少し考えていたんですが、フォームのキープレスイベントで

if (e.KeyChar == (char)13)
{
ActiveForm.SelectNextControl(ActiveControl,true,true,true,true);
ActiveControl.Focus();
}

ってのを考え付きました。
いろいろなのを試してみて最良なものを使いたいと思います。
みなさんありがとうございました。
■鳥■
会議室デビュー日: 2003/10/20
投稿数: 7
投稿日時: 2003-10-23 17:18
試してみたんですが、

if (e.KeyChar == (char)13)
{
ProcessTabKey(true);
}

これがベストのような気がします。
burton999さん、架空兎さんありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)