C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.44279 の関連記事表示

<< 0 >>
■44279  処理が終わったときにウィンドウを閉じて終了したい
□投稿者/ 初心者 -(2009/12/03(Thu) 19:35:07)

    分類:[C#] 

    C#で開発を始めた初心者です。

    public Form1() {
    InitializeComponent();
    method();
    Close();
    }
    というように、処理が終わったときにウィンドウを閉じて終了したいです。
    ところが、このように、アプリケーションの途中でClose()すると、Main()の
    Application.Run(new Form1());
    の行で、
    System.ObjectDisposedException はハンドルされませんでした。
    Message="破棄されたオブジェクトにアクセスできません。\r\nオブジェクト名 'Form1' です。"
    というエラーが出ます。

    終了する方法をアドバイスいただけないでしょうか。
親記事 /過去ログ75より / 関連記事表示
削除チェック/

■44281  Re[1]: 処理が終わったときにウィンドウを閉じて終了したい
□投稿者/ オショウ -(2009/12/03(Thu) 20:47:32)
    No44279 (初心者 さん) に返信
    > 終了する方法をアドバイスいただけないでしょうか。

    this.Close();

    で、終わりますが・・・

    以上。
記事No.44279 のレス /過去ログ75より / 関連記事表示
削除チェック/

■44282  Re[1]: 処理が終わったときにウィンドウを閉じて終了したい
□投稿者/ よねKEN -(2009/12/03(Thu) 22:23:25)
    プログラムがmethod()を呼び出して、即終了したいだけなら、
    任意のクラスで、Mainメソッドを
    public static void Main()
    {
    method();
    }
    のように定義するだけでよいかと。フォームは必要ありません。

    > Application.Run(new Form1());

    引数にフォームのインスタンスを取るApplication.Runメソッドは引数に渡されたフォームのShowメソッドを呼び出した場合と同じ状態にします。
    しかし、

    > public Form1() {
    > InitializeComponent();
    > method();
    > Close();
    > }

    コンストラクタの中でいきなりCloseしてます。
    コンストラクタの実行時点ではまだ表示(Show)されていないのに、
    コンストラクタが終了した時点ではCloseされた状態になるので、それはまずいですよね。
    #開けていない箱のふたは閉じられない、ので。

    Closeメソッドの内部ではDisposeメソッドを呼んでいるので、それ以降のそのフォームに対する操作は怒られます。

    > System.ObjectDisposedException はハンドルされませんでした。

    そのため、破棄されたオブジェクトに対する操作として怒られます。
記事No.44279 のレス /過去ログ75より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -