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

わんくま同盟

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

C# と VB.NET の入門サイト


(過去ログ 150 を表示中)
■87426 / )  条件により類似のモーダルフォームを切り替える
□投稿者/ うるち米 (1回)-(2018/05/21(Mon) 17:23:13)

分類:[VB.NET/VB2005 以降] 

現在、以下のようなコードでモーダルフォームを表示し、
モーダルフォームで設定した情報を取得し、これを元に処理をしています。
(VB2015使用)

Using f As New Form1
    If f.ShowDialog(Me) = DialogResult.Cancel Then
        Return
    End If
    
    Dim para1 as String =  f.Prop1
    Dim para2 as Integer =  f.Prop2
    Dim para3 as Boolean =  f.Prop3
    
    '(以下、これらパラメータを使用して処理)

End Using

ただし、今回の修正で、条件によりモーダルで開くフォームをForm1ではなくForm2にする、
ということを行う必要が出てきました。
ただし、Form1とForm2はデザインが異なるのみで、この処理に使用する各フォームのプロパティも
Prop1, Prop2, Prop3という同じ名前・同じ型です。

例えば、以下のようにすればよいかも知れませんが、Usingの内部は全く同じコードとなり、
1箇所にまとめてコードを書くことができればメンテナンスも楽ではないかと思います。

If (条件) Then
    Using f As New Form1
        If f.ShowDialog(Me) = DialogResult.Cancel Then
            Return
        End If
        
        Dim para1 as String =  f.Prop1
        Dim para2 as Integer =  f.Prop2
        Dim para3 as Boolean =  f.Prop3
        
        '(以下、これらパラメータを使用して処理)

    End Using
Else
    Using f As New Form2
        If f.ShowDialog(Me) = DialogResult.Cancel Then
            Return
        End If
        
        Dim para1 as String =  f.Prop1
        Dim para2 as Integer =  f.Prop2
        Dim para3 as Boolean =  f.Prop3
        
        '(以下、これらパラメータを使用して処理)

    End Using
End If

このような場合、どのようなコードを書くのが望ましいでしょうか?

返信 編集キー/


管理者用

- Child Tree -