C#開発日記(.NET FrameWork)|初心者から上級者まで|C#プログラミングでわからない事を解決する方法>Formを必ず最前面に移動しその Form にフォーカスを移動する

Form を「必ず」最前面に移動し、その Form にフォーカスを移動する



 // this.Activate() だけでは、うまく Form が前面に移動しない場合がある。

 // これは既に前面にある「アプリ」が、これを拒否するからである(windows の仕様)。

 // 必ず前面に移動させるには、下記のようにスレッドのアタッチが必要である。

 using System.Runtime.InteropServices ;  // for DllImport

 [DllImport("user32.dll")]

 extern static int GetWindowThreadProcessId(IntPtr hWnd, IntPtr ProcessId) ;

 [DllImport("user32.dll")]

 extern static IntPtr GetForegroundWindow() ;

 [DllImport("user32.dll")]

 extern static bool AttachThreadInput(int idAttach, int idAttachTo, bool fAttach) ;

 void this_activate()

 {

    // Thread のアタッチ

    int fore_thread = GetWindowThreadProcessId(GetForegroundWindow(), IntPtr.Zero) ;

    int this_thread = AppDomain.GetCurrentThreadId() ;

    AttachThreadInput(this_thread, fore_thread, true) ;

    // this をアクティブ

    this.Activate() ;

    // Thread のデタッチ

    AttachThreadInput(this_thread, fore_thread, false) ;

 }

C#開発日記(.NET FrameWork)|初心者から上級者まで|C#プログラミングでわからない事を解決する方法

トップページ
特殊文字とは
起動時のパラメータ取得方法
C#プログラミング文字列を連結する方法
C#でのファイルの書き込み
文字列の分割の方法
C#のファイルパス名文字列から、ファイル名や拡張子を抜きだす方法
C#文字列扱いの方法etc
ダイアログで複数ファイル名を読む方法
動的配列の取り方
チェックリストボックスでチェックされたものを調べる方法
C#ファイルからの入力
文字列の検索方法
四捨五入する方法
小数点操作のいろいろ
型変換による精度保持の方法
内部変換誤差のお話
C#で数値を文字列に変換する方法
算術演算 (関数) の記述
C#ファイルの移動
C#フォームをアクティブにする方法
Formを必ず最前面に移動しその Form にフォーカスを移動する
C#で時間差表示する方法
Form の多重起動を防ぐ
Form を最前面に\配置
Formを自動で閉じる
VisualStudioでセットアップモジュールを作る方法
*
*
*
(以下は用語説明文)
.NET Framework

その他

リンク集







inserted by FC2 system