実現したいこと
常に最前面に表示された状態を維持したい画面があるのですが、ゲームなどの画面を一緒に開いた際に、最前面を維持したい画面にアクティブを奪われてゲーム画面のコントロールが奪われてしまい、同時に稼働することができません。
再度ゲーム画面をクリックすればコントロールがゲームに移りますが、
再び最前面に表示したい画面をクリックしてしまうと、同じことの繰り返しになってしまいます。
そこでフォームをクリックしてもアクティブにさせない方法を検索し、以下の
コードを入力することで、アクティブにさせないフォームを作成できたのですが、今度はテキストボックス等に入力ができなくなってしまいました。
※正確には最小化した後に再び表示させたりして、アクティブにさせることが可能なのでその手順を行えば入力可能にできます。
そこで、checkbox等で自由にフォームを非アクティブのまま維持させたり、アクティブ状態になるようにしたりと切り替えることが可能なのか、可能であれば、方法をどなたかご教示いただきたいです。
簡潔に書くと、checkboxを配置して
Trueの場合:フォームをクリックしてもフォームが非アクティブのままの状態
falseの場合:フォームをクリックするとフォームがアクティブになる
のような状態にしたいです。
非アクティブのまま最前面に常に表示させておいて、いつでもテキストボックス入力以外の操作可能な状態にしているという想定です。
よろしくお願いします。
前提
言語:C#
環境:visualstudio、Windowsフォーム
.NET Framework 4,7,2
▼非アクティブ状態にするコードの参照元
https://hima-tubusi.blogspot.com/2016/08/c.html
該当のソースコード
private const int WS_EX_NOACTIVATE = 0x8000000; protected override CreateParams CreateParams { get { CreateParams p = base.CreateParams; if (!DesignMode) { p.ExStyle |= (WS_EX_NOACTIVATE); } return (p); } }

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/12/17 08:58