C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[1]: 現在フォーカスの設定されたフォームを取得


(過去ログ 131 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■77620 / inTopicNo.1)  現在フォーカスの設定されたフォームを取得
  
□投稿者/ aga (8回)-(2015/11/09(Mon) 11:46:27)

分類:[C#] 

いつもお世話になっております。

現在フォーカスの設定されたフォームを取得する方法について質問させてください。

使用言語:C#
開発環境:Visual Studio 2012

現在どのフォームにフォーカスが設定されているのかを取得する方法がわかりません。

どのフォーム、というのはデスクトップ全体にある全てのフォームを対象に考えています。

どなたかご教授をお願いします。
引用返信 編集キー/
■77621 / inTopicNo.2)  Re[1]: 現在フォーカスの設定されたフォームを取得
□投稿者/ furu (32回)-(2015/11/09(Mon) 12:34:43)
WindowsAPIを使う方法しか知らなので
私も知りたいです。
引用返信 編集キー/
■77623 / inTopicNo.3)  Re[1]: 現在フォーカスの設定されたフォームを取得
□投稿者/ 魔界の仮面弁士 (552回)-(2015/11/09(Mon) 12:53:36)
No77620 (aga さん) に返信
> どのフォーム、というのはデスクトップ全体にある全てのフォームを対象に考えています。

「フォーム」ではなく、「ウィンドウ」という判断で良いでしょうか。


自アプリ内(WPF)なら
 Application.Current.Windows.OfType<Window>().SingleOrDefault(w => w.IsActive);
 IInputElement element = FocusManager.GetFocusedElement(window); 

自アプリ内(WinForm)なら
 Form form = Form.ActiveForm;
 Control ctrl = form.ActiveControl;

他のアプリも含む場合
 [DllImport("user32")] extern static IntPtr GetForegroundWindow(); 
引用返信 編集キー/
■77625 / inTopicNo.4)  Re[2]: 現在フォーカスの設定されたフォームを取得
□投稿者/ aga (9回)-(2015/11/09(Mon) 13:23:52)
No77623 (魔界の仮面弁士 さん) に返信

> 「フォーム」ではなく、「ウィンドウ」という判断で良いでしょうか。
問題ありません。

> 他のアプリも含む場合
>  [DllImport("user32")] extern static IntPtr GetForegroundWindow(); 
上記の関数を使用することで、やりたかったことを実現することが出来ました。
ありがとうございました。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -