Show()・ShowDialog()について


超初心者  2004-02-10 23:58:31  No: 111765

私が今している仕事はVBで記述したプログラムをVB.NETに移行する作業なんですが
どうしてもShowDialog()でエラーが出て動きません。
Show()では動くんですがモーダルフォームでないとだめなので使えません。
エラーは「'System.NullReferenceException' のハンドルされていない例外が
 system.windows.forms.dll で発生しました。
追加情報 : オブジェクト参照がオブジェクト インスタンスに設定されていません。」というものです。ロジックはこうです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
Private Sub cmdRecInfo_Click(ByVal eventSender As System.Object,                                     ByVal eventArgs As System.EventArgs)                                   Handles cmdRecInfo.Click
    
    Dim blnRet As Boolean ' 戻り値
    Dim ucRet As Byte ' 戻り値
    Static blnEvents As Boolean ' 処理排他フラグ
                   Dim sFuncName As String

    sFuncName = "cmdRecInfo_Click"

    '' 「処理中」終了
    If blnEvents = True Then Exit Sub
    blnEvents = True
    
        '========================================
        '' 詳細画面モーダル表示
        '========================================
        blnRet = frmHistInfo.DefInstance.FormDispInitialize
        If blnRet = True Then
            ' 画面表示
            frmHistInfo.DefInstance.ShowDialog()
            System.Windows.Forms.Application.DoEvents()
        Else
            ucRet = CMsgBox.csMsgBox("初期処理異常!!", 
                                     BTN_OK_ONLY + ICO_INFORMATION)
            System.Windows.Forms.Application.DoEvents()
        End If
        Call lvwHistInf.Focus()
        blnEvents = False
  End Sub
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
frmHistListsフォームからfrmHistInfoを読み込みたいのですが・・・・
ごめんなさい、説明がうまくできなくて;;


岡田 之仁  2004-02-11 19:21:37  No: 111766

.NETの場合、VB6と比べて、その辺の方法が完全に
変更されています。フォームもオブジェクト(クラス)なので・・・

Dim objForm as frmHinstLists

objForm = New frmHinstLists
objForm.Show()
objForm,Dispose()

このように書きます。

frmHinstInfo の方をShowする場合、frmHinstListsの方で・・・

Dim objForm as frmHinstInfo 

objForm = New frmHinstInfo 
objForm.Show()
objForm,Dispose()

とやってみて下さい。

※  因みに、VB.NET 2002 ですか? 2003 ですか?
    2003 の方の変換ウィザードの方が、2002よりは
    マシなコードにしてくれた・・・と思ってました
    が・・・

以上。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加