- 締切済み
フォームの×ボタンを無効にするには
C#.NETでプログラミングしています。 フォームの×ボタンを無効にするために「RemoveMenu()」を使っていますが、処理の負荷が大きくなった時に一旦別のウィンドウに隠して再表示したときに×ボタンが有効になってしまいます。 最小化ボタンが必要なので、ControlBoxを無効にすることもできません。 なんとか回避する方法はないでしょうか。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- thyristor
- ベストアンサー率76% (13/17)
私の環境でも再現しました。確かに×ボタンが有効になってしまいますね。 他にも方法があるかもしれませんが、とりあえず重い処理を別スレッドで実行したら解決しました。
- Kuppycat
- ベストアンサー率50% (109/216)
http://www.atmarkit.co.jp/fdotnet/dotnettips/142closebtn/closebtn.html ↑ こちらを参考に自分の環境でテストしました。 うまくできましたよ。
お礼
ありがとうございます。 まったくその通りにしているんですが、処理の負荷がかかった時(下記の処理など)、一旦別のウィンドウに隠して、再度表示したときに、処理が終わるまで×印が出てくるんです。 それを回避したいんですが... ---------------- for(i=0;i<1000;i++) { for(j=0;j<1000;j++) { if (j > 0) { k = i / j; label1.Text = k.ToString(); } } } ---------------- ありがとうございました。
- thyristor
- ベストアンサー率76% (13/17)
単純に×ボタンクリックによるFormのCloseを防ぎたいのでしたら、FormClosingイベントを追加し、 e.Cancel = true; でOKです。
お礼
ありがとうございます。 e.Cancel = true; とすると自分で用意した閉じるためのコマンドボタンも無効になってしまいます。 また、×ボタンを有効にしたくないんです。(そういう仕様なんです) よろしくお願いします。
お礼
度々ありがとうございます。 別スレッドですか。試してみます。 ありがとうございました。