0

ユーザーがアプリのテキストボックスに値を入力して[OK]をクリックするまで、すべてのプログラムをロックまたはフリーズするアプリケーションをc#で作成しています。

アプリの目的は、人々に時間を入力してもらうことです。

私の知る限り、一番上に設定できますが、タスクマネージャーでアプリを終了できるため、ここで立ち往生しています..

formName.TopMost = true;

どんな助けでもいただければ幸いです

4

1 に答える 1

2

それは正解です。Windows オペレーティング システムでは、複数のプログラムを同時に実行できます。あなたが経験していることは、完全に設計によるものです。

私の記憶が正しければ、TopMostプロパティはプロセス内のウィンドウにのみ適用されます。あなたが言及したように、それはすべてまったく無関係です。ユーザーはタスクマネージャーを使用してアプリケーションを強制終了できます。

それを回避する合法的な方法はありません。それは「制限」ではなく、機能です。タスク マネージャーによって閉じられないようにするアプリは、マルウェアと呼ばれるソフトウェアのカテゴリに危険なほど接近しています。このような追求から良いものは何も生まれません。

関連する読み物:プログラムとユーザーの間の軍拡競争


おそらく、適切な妥協案は、ウィンドウ/フォームを実際に一番上にして、[閉じる] ボタンを無効にして、ユーザーがウィンドウを閉じてはならないことを認識できるようにすることです。これはほとんどの場合、必要な手段でアプリケーションを終了することを決定していないユーザーを停止するのに十分であり、それはあなたが気にする必要があるすべてです.

フラグを設定するかトグルして、ウィンドウ/フォームを常に他の実行中のアプリケーションの上に表示する方法については、こちらのサンプル コードを参照してください。WS_EX_TOPMOSTHWND_TOPMOST

クラススタイルを設定して閉じるボタンを正しい方法で無効にすることについて、詳細な回答をすでにここに書いています。CS_NOCLOSE

于 2011-12-21T10:47:13.860 に答える