2

イベントに応答するために別のプログラムからフォーカスを移すことは可能ですが、応答が処理されたら、前のプログラムに戻り、カーソルを元の場所に戻しますか?

これは奇妙な質問のように聞こえますが、次のように考えてみてください。

  1. ユーザーがProgram Aのテキスト ボックスに入力しています。
  2. プログラム Bのウィンドウがポップアップし、ユーザーはいくつかのボタンを押して何かを確認します。
  3. プログラム Bは制御をプログラム Aに戻し、テキストボックスの選択を復元します。

完全な C# ソリューションがあれば素晴らしいのですが、これは通常よりも少し手間がかかるように思えます。

何かご意見は?

4

2 に答える 2

1

個人的には、これを行うと、ユーザーがポップアップ ウィンドウで望ましくない値を選択する可能性が非常に高くなります。たとえば、誰かが Word で入力しています。アプリケーションはウィンドウをポップアップし、そこで「Enter」を押すと値が選択されます...デフォルトボタンなど。意図せずに、ユーザーはフォームで間違った値を「選択」しました。

Windows 自体がこれを行う傾向があり、非常に面倒です。デスクトップ ショートカットをすばやくダブルクリックしてアプリケーションを開き、アプリケーションが起動する前に (たとえば) 電子メールに戻ると、フォーカスされた電子メール ウィンドウからフォーカスが移動し、開いたばかりのアプリケーションにフォーカスが移動する傾向があります。 、電子メールのテキストまたはキーボード ストロークが、開いたばかりのウィンドウに移動します。

于 2009-05-08T20:20:18.957 に答える
1

私の経験では、Windows プログラムはまさにこのように動作します。ユーザーがマウス クリックでフォーカスを戻そうとすると、それ自体がフォーカスをリセットするため、そうでないことがよくあります。それがwinformsアプリの場合、おそらくフォームレベルでフォーカスを失った/フォーカスを得たイベントで何かを行うことができます。

于 2009-05-08T20:24:20.197 に答える