BETA

画面遷移&値渡しの試行錯誤

投稿日:2019-11-30
最終更新:2019-11-30

初めはこうしたかったのですが、何度やっても動かず。。。
Module1.vb - 共通クラス

Public Module Module1  
 ' 諸事情で拡張メソッド使ってます。  
    <System.Runtime.CompilerServices.Extension()>  
    Public Sub TransitionForm(Form1 As Form, ByVal ParamArray args() As Object)  
        args(0).show()  
        My.Application.ApplicationContext.MainForm = args(0)  
        arg(0)._passValue = args(1)  
        Form1.Hide()  
    End Sub  
End Module  

Form1.vb - 遷移前画面

Public Class Form1  
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
        Me.TransitionForm(Form2, "test")  
    End Sub  
End Class  

Form2.vb - 遷移後画面

Public Class Form2  
    Public Shaared _passValue As Object  
    Sub New(passValue As Object)  
        InitializeComponent()  
        Label1.Text = _passValue.ToString()  
    End Sub  
End Class  

結局こうやったら普通に動きました。はぁ(*´Д`)(なんだかなぁ)

Module1.vb - 共通クラス

Public Module Module1  
 ' 諸事情で拡張メソッド使ってます。使わなくても行けます。  
    <System.Runtime.CompilerServices.Extension()>  
    Public Sub TransitionForm(Form1 As Form, ByVal ParamArray args() As Object)  
        args(0).show()  
        My.Application.ApplicationContext.MainForm = args(0)  
        Form1.Hide()  
    End Sub  
End Module  

Form1.vb - 遷移前画面

Public Class Form1  
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click  
        Me.TransitionForm(New Form2("test"))  
    End Sub  
End Class  

Form2.vb - 遷移後画面

Public Class Form2  
    Sub New(passValue As Object)  
        InitializeComponent()  
        Label1.Text = passValue  
    End Sub  
End Class  

共通クラスにメソッドを書くやり方で(1つ目みたいなやり方)、
もっとスマートなやり方知ってる方いらっしゃったら
教えていくだちゃい。。。。もっと勉強しなきゃなぁ。

技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!
or 外部アカウントで 登録 / ログイン する
クランチについてもっと詳しく

この記事が掲載されているブログ

@MewW6mの技術ブログ

よく一緒に読まれる記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる
技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです
or 外部アカウントではじめる
10秒で技術ブログが作れます!