特定のアクションが実行された後にポップアップする勝利フォームがあります。フォームが閉じられるまで、画面の中央にあるこれを他のウィンドウへのアクセスをロックしたいと思います。
基本的に上に留まり、他のフォームにアクセスすることはできません。これどうやってするの?
あなたが探しているのはモーダル フォームです:モーダルおよびモードレス Windows フォームの表示
Form1 form1 = new Form1();
/* Calling ShowDialog instead of Form.Show() will force
* the user to close that form first */
form1.ShowDialog();
更新 1:
Workraveソフトウェアと同じようにシステム全体のブロックを探している場合は、次のようにすることができます。
境界線のないウィンドウを最大化して作成し、境界線 (この場合は非常に大きなもの) を透明にします。このウィンドウの中央に疑似ダイアログ ボックスがあります。
同様に、スクリーンショットを撮ってその形式で表示することもできますが、スクリーン アクティビティがあったとしても表示されません。
Workrave のブロッキング アクティビティの例:
その休憩をスキップ/延期しない限り、デスクトップでは何もできません。
注 : Workrave は、反復運動過多損傷 (RSI) の回復と予防を支援するプログラムです。このプログラムは、マイクロポーズ、休憩を取るように頻繁に警告し、1 日の制限に制限します。(彼らのウェブサイトから)
更新 2 : Wrokrave はオープンソースであるため、コードをブラウズして、ブロック システムをどのように実装したかを確認できます: http://sourceforge.net/projects/workrave/
使える:
YourForm.ShowDialog().
ShowDialog は、現在のフォームが閉じられていない限り、バックグラウンド フォームへのアクセスを許可しません。