• ベストアンサー

ウィンドウにフォーカスを移動する方法

デスクトップにフォーカスを移動する方法を教えて下さい。 状況としてはデスクトップにウィンドウが1つ以上あり、デスクトップにフォーカスがない状態です。 デスクトップにウィンドウが1つもなければ、WINDOWSキー+Dキーでフォーカスになりますが、 デスクトップにあれば、最小化されていまいます。 ウィンドウを最小化せずにデスクトップにフォーカスを移す方法をご教授願います。

質問者が選んだベストアンサー

  • ベストアンサー
  • umamimi
  • ベストアンサー率39% (144/362)
回答No.4

No.3 です。 Windows7ですか。ちょっとウチでは試せません。 >→ 開いているウィンドウの参照になってしまいます。 そうですか。Windows2000 ではこの時点では 通知領域(っていうんでしたっけ)でボタンが押されたような状態になりますが、 この時のウィンドウのタイトルバーが青くなってなく、ウィンドウ自体はアクティブに なっていないのですが。 続けて<Windwos>+<TAB>で通知領域内を囲み破線と押された状態がエンドレスに移動します、 <TAB>だけだと回答No.3 のように、囲み破線がタスクトレイ(上の左上のアイコン)→... へと移動します、こちらはエンドレスにはなりません ここに<Windows>のあとに<f6>でどうとか書かれてますね。 ttp://180.cocolog-nifty.com/blog/windows/index.html 既にご覧になってるでしょうから蛇足なんですがMSのページ、 Windows7 のショートカット一覧 http://www.microsoft.com/ja-jp/enable/products/keyboard/windows7.aspx

その他の回答 (3)

  • umamimi
  • ベストアンサー率39% (144/362)
回答No.3

「キーボード操作で」と解釈します。 Windows2000 の場合、なので他OSでは異なるかも知れませんが 1. <Windows>を押したまま<TAB>を1回チョン押し 2. <TAB>を2回チョン押し でOKです。 概説。他OSでキー操作を探る場合の参考に。 1. で使用アプリを選択するモードになり、タスクバー上のアプリ部分に 「フォーカス移動先候補」(正しい呼び名がわからないので勝手に仮称)が 囲み破線で示されます。(ここで<Enter>を押すとそのアプリに移動します) ここで<TAB>を押すと、「フォーカス移動候補」のグループが タスクバー → タスクトレイ → デスクトップ(上のアイコン) → スタートボタン → と移動します。 ・グループ内では矢印キーで選択します。 ・グループ内にフォーカスが合っていたアイコンが過去にあった場合は、  囲み破線がグループに移動した時点で選択状態(濃いブルー背景の抜き文字になる)になるようです。 質問の場合、フォーカス移動先候補のグループがデスクトップに移動した時点で 目的を果たせたことになると思います。

tomo_r40
質問者

お礼

回答ありがとうござます。 windows7で試しましたが、 1. <Windows>を押したまま<TAB>を1回チョン押し、にて → 開いているウィンドウの参照になってしまいます。 やはり出来ないのでしょうか。。。 複数のウィンドウを開いていて、そのうち1つのウィンドウを閉じれば、 何処にもフォーカスが移動しない状態。 こういう状態は頻繁にある状態だと思うのですが、やはり処理として難しいのでしょうかね。 デスクトップの全ウィンドウを最小化するとかありますが、必要だから表示しているのに あまり使わないケースだと思います。

  • tar5500
  • ベストアンサー率22% (852/3865)
回答No.2

Altキーを押したままTabキーかな?

tomo_r40
質問者

お礼

回答ありがとうござます。 1つ以上のウィンドウがある状態のケースでした。

回答No.1

基本的に、デスクトップを出すと、ウインドウは最小化されてしまいませんか? alt+tab や ウインドウキー+tabで 切り替えはできますが。。。 あとは、Windows7であれば、画面の右下にマウスカーソルをもっていくとか。

tomo_r40
質問者

お礼

回答ありがとうござます。 1つ以上のウィンドウがある状態のケースでした。

関連するQ&A

  • SSTabのフォーカスの移動について!

    Windows2000、VB6.0、SP5で開発しています。 質問は、SSTabのフォーカス移動についてです。 SSTab上のコントロール上にフォーカスがある時、 Tabでフォーカスの移動をしてると、急にフォーカスが見えなくなってしまうことがあります。 調べてみると、隠れているコントロールに移動してしまってるみたいなんですが、 これは、解決策はないんでしょうか? 最後のコントロールでSetFocusを使うとかあったのですが、その場合、 最後のコントロールにフォーカスがある時に、どのコントロールをクリックしても、 最後のコントロールのSetFocusで設定したコントロールにフォーカスが移動してしまいます。 良い方法をご存知の方、いらっしゃいましたら、 どうぞ、ご教授よろしくおねがいしますm(_ _)m

  • フォーカスを移動すると遷移するは違うのでしょうか

    タブキーや方向キーなどで、フォーカスを「移動する」というのと、「遷移させる」「遷移する」と言うのは、厳密には違うのでしょうか。 ご存知の方、どう違うのか教えていただけますでしょうか。 例文:上下キーでフォーカスを移動する。 左右キーで、設定通りにフォーカスを遷移できるか確認する。 よろしくお願いします。

    • ベストアンサー
    • HTML
  • 移動した先のフォーカスについて

    度々すみません。 WindowsのマイコンピュータのプロパティのIPアドレスのように、3文字入れたらフォーカスが横に移動して、移動した先の値を選択した状態にするにはどのようにしたら良いのでしょうか?テキストボックスを4つ使用していて、フォーカスは移動できるのですが、選択した状態にすることができません。返答お願いします。

  • タブダイアログのフォーカスの移動について

    タブダイアログを使った場合の フォーカスの移動についての質問です。 状態としましては フォームにタブ数3のタブダイアログがあり、 それぞれのタブに3つテキストボックスがあります。 また、タブダイアログとは別にフォーム上に 閉じるボタンが1つあります。 現在1つ目のタブの1つ目のテキストボックスに フォーカスがあり、Tabキーでフォーカスを 移動させていくのですが、 3つ目のテキストボックスでtabキーを押すと フォーカスがどこに行ったのか 行方不明になってしまいます。 なぜか2つ目と3つ目のタブの 3つ目のテキストからは 閉じるボタンへフォーカスが移動するのですが、 1つ目のテキストだけが行方不明になってしまいます。 (shift+tabで戻ってきません) また、3つ目のタブのキャプションからの フォーカス移動も行方不明となってしまうます。 タブインデックスは タブダイアログボックスが0 1つ目のタブの1つ目のテキストが1 1つ目のタブの2つ目のテキストが2 1つ目のタブの3つ目のテキストが3 2つ目のタブの1つ目のテキストが4        ・        ・ 3つ目のタブの3つ目のテキストが9 閉じるボタンが10 となっています。 タブダイアログのフォーカス移動を制御するには どうしたら良いのでしょうか? また、行方不明になってしまうフォーカスの 現在位置を見つけるようなことはできますでしょうか? よろしく回答のほどお願いします。

  • ExcelVBA フォーカスの移動

    Excel2003を使用しています。 シートに画面を作成したのですが 1点ちょっとわからないことがあります。 例えばある項目(セル)にフォーカスがある状態で 「Enterキー」を押下したとします。 そこで特定のセルにフォーカスを移動させることは 可能なのでしょうか?。 VB6だと指定出来たような気がしたのですが・・ すみませんがアドバイスお願いします。

  • フォーカスの移動について

    複数のソフトを使っている時、 キー操作などでフォーカスが使用中の ソフトからはずれてしまった場合、 今はマウスでそのソフトの画面をクリックして フォーカスを戻しています。 これをマウスを使わないでフォーカスを 戻す方法がありますか?

  • デスクトップにフォーカスを移動

    デスクトップにフォーカスを移動するにはどうすればよいでしょうか? (あるいは他のプロセスにフォーカスを移動) HWND dHwnd = GetDesktopWindow(); HWND ret = SetFocus( dHwnd ); とすると失敗するようです。 GetLastError()で183が返ってきます。 (ファイルを作成できない??)

  • TabIndexを使わないで、フォーカスの移動

    ご多忙中大変申し訳ありません。 VBの初心者です。 TabIndexを使わないで、コントロールの名前の番号でフォーカスの移動をしたいのですが、私のレベルでは全くできません。 TextBox1、TextBox2、TextBox3、TextBox3、~TextBox15 のようにTextBoxの後ろに付いている、数字を利用してフォーカスの移動をしたいと思っております。 実装前に下記のようなコードを書いてテストしていますが、どこを調べても、また試行錯誤を繰り返してもできません。 Public Class Form1 'テスト Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.KeyPreview = True '1列目TextBoxの生成 Dim i As Integer For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(50, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 txtbx.Text = "TabIndexは" & CStr(i * 3) txtbx.Name = "TextBox" & CStr(i + 1) Me.Controls.Add(txtbx) Next '2列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(160, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 1 txtbx.Text = "TabIndexは" & CStr(i * 3 + 1) txtbx.Name = "TextBox" & CStr(i + 6) Me.Controls.Add(txtbx) Next '3列目TextBoxの生成 For i = 0 To 4 Dim txtbx As New TextBox txtbx.Size = New Size(105, 30) txtbx.Location = New Point(270, 50 + i * 40) txtbx.Font = New Font("MSゴシック", 12, FontStyle.Regular) txtbx.TabIndex = i * 3 + 2 txtbx.Text = "TabIndexは" & CStr(i * 3 + 2) txtbx.Name = "TextBox" & CStr(i + 11) Me.Controls.Add(txtbx) Next End Sub Private Sub Form1_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown If e.KeyCode = Keys.Right Then '→キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, True, True, True, False) e.Handled = True ElseIf e.KeyCode = Keys.Left Then '←キーによるフォーカスの移動 Me.SelectNextControl(ActiveControl, False, True, True, False) e.Handled = True End If '↓(Down)キーによるフォーカスの移動  ここができません。 If e.KeyCode = Keys.Down Then Dim txtboxname As String txtboxname = Me.ActiveControl.Name 'TextBoxの名前の名前の取得 Dim txtbxnum As String txtbxnum = txtboxname.Remove(0, 7) 'TextBox~の名前から、~(数字)だけにする。 Dim controlName As String controlName = "TextBox" & CStr((CInt(txtbxnum) + 1)) 'TextBox~の名前の~に1を足す。 Me.Controls(controlName).Select() 'TextBox~+1のTextBoxをフォーカス 'Select() Focus()も結果は同じです。 End If '↑(Down)キーによるフォーカスの移動 'この部分は、↓(Down)キーによるフォーカスの移動が出来るようになりましたら、追加します End Sub ' Enterキーによるフォーカスの移動 Private Sub Form1_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles MyBase.KeyPress If e.KeyChar = Chr(Keys.Enter) Then Me.SelectNextControl(ActiveControl, True, True, True, True) e.Handled = True End If End Sub End Class 最終的な目的の動作は、EnterキーではTabIndexの順番にフォーカスの移動。 ←キーでは、左にフォーカスの移動。 →キーでは、右にフォーカスの移動。 ↑キーでは、上にフォーカスの移動。 ↓キーでは、下にフォーカスの移動。 コントロールの名前の番号でフォーカスの移動をしたい理由は、 Enterキーと←、→キーによるフォーカスの移動でTabIndexの順番を使い、上下方向、↑キー、↓キー移動には、TabIndexの順番が画像のように少々複雑になってしまい、TabIndexを使用してのフォーカスの移動は断念しました。 もし、TabIndexでフォーカスの移動が出来るようなら、そちらのほうでもかまいません。 使用バージョンは、VB2010 Express Edition です。 ご迷惑を、おかけしますが、どうかご助力をお願いいたします。

  • ENTERキーでフォーカスを移動したい

    VB6で、ENTERキーでフォーカスを移動できるようにしたいのですが、普通にコントロールのkey_Up、Down,Pressで処理した場合、日本語入力だと文字確定でENTERを押した時にフォーカスが飛んでしまい、使い勝手が良くありません。 解決策、または他に簡単に実現できる方法がありましたらアドバイスをお願いします。

  • Tabコントロールに貼り付けたダイアログ内のフォーカス移動について

    Tabコントロールを使ったソフトを製作中です。 各Tab内のダイアログは、CHILDフラグの付いたウインドウをリソースで作っておき、CreateDialog関数で作成し、TCN_SELCHANGEメッセージを拾ってShowWindowでどのダイアログを見せるかを切り替えています。 マウス操作は問題ないのですが、キーボードのタブキーによるフォーカスの移動がうまくできません。子ダイアログ内の各コントロールを移動させたいのですが、どこにフォーカスがあっても、1回タブキーを押すとTabコントロールにフォーカスが移り、それ以降どこにも移動しないという状態です。 何かメッセージをうまく処理していないのでしょうか?解決策があればご教授お願いします。