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

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

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

No.101088 の関連記事表示

<< 0 >>
■101088  Re[15]: COMオブジェクトで起動したExcelの印刷を行うと例外発生
□投稿者/ ジェイド -(2023/01/05(Thu) 16:30:34)
    No101086 (魔界の仮面弁士 さん) に返信
    
    魔界の仮面弁士さん、ご連絡ありがとうございます。
    
    > Overrides Sub Dispose(Boolean) は自動生成されるコードですよね? 
    
    すみません、大変失礼致しました。他のフォームにも同じように入っておりました。
     
    > Form に「コンポーネント」(Timer や BackgroundWorker 等)を貼っている場合は、そのコードが必要です。
    > 「コントロール」(TextBox や ListBox 等)だけしか貼っていない場合は、Dispose のオーバーライドを
    > 行わなくても問題無いですが、わざわざ自動生成コードを削る意味は無いでしょう。
    
    フォームに貼ってあるのは、Label と Timer のようです。
    
    フォームのLoad処理で、以下のようにしておりました。
            AddHandler Timer.Tick, AddressOf Timer_Tick
    
    こちらですが、サービス処理のタイムアウト対策目的で呼び出しているようです。
    
    > …で、気になるのはそのメインフォームの役割。
    > 
    > 非表示のままにしている、という点は別に構いませんが、InitializeComponent すら
    > 呼んでいないということは、デザイナコードは未使用のはずですし、そうすると
    > 待機処理をどこに書いているのだろう、という不安がありました。
    > 
    > 先のエラーメッセージで、CreateHandle 中の ObjectDisposedException 例外が見えているので、
    > 「待機処理を Sub New で行っているのではあるまいか…」という疑念です。
    > 要するに、何らかのロード処理(OnLoad メソッドのオーバーライド、または Load イベントの処理)が
    > 終わっていない状況で Form が破棄されていて、それがエラーの原因になったのではないか、と。
    
    フォームのLoad処理は、以下の内容になっているのですが・・・
    この作りに問題があるのでしょうか?
    すみません、他人が作成したプログラムに肉付けしてる状況で理解が追い付いていないところがあります。
    
        Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    
            Dim strErrMsg As String = ""
            AddHandler Timer.Tick, AddressOf Timer_Tick
    
            '待機状態
            Cursor.Current = Cursors.WaitCursor
    
            Try
                If LoadProcess(strErrMsg) = False Then
                    If Not String.IsNullOrEmpty(strErrMsg) Then ShowMessage(strErrMsg, MessageBoxIcon.Exclamation)
                    Return
                End If
    
            Catch ex As Exception
                'エラーが発生しました。
                ShowMessage(ex.Message, MessageBoxIcon.Exclamation)
            Finally
                Try
                    Me.Close()
                Catch ex As Exception
                    MsgBox(ex.Message, MessageBoxIcon.Exclamation)
                End Try
            End Try
    
        End Sub
    
記事No.100893 のレス /過去ログ176より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -