フォームを動的に実行したい への返答
投稿で使用できる特殊コードの説明。(別タブで開きます。)
以下の返答は逆順(新しい順)に並んでいます。
投稿者 ケンケン  (社会人)
投稿日時
2024/11/1 09:34:38
言葉足らずで申し訳ございません。
管理メニューが管理職、一般社員で、表示される画面が異なります。
例
管理職 一般社員
遷移画面が4画面 遷移画面が3画面
社員情報画面(inf) 売上画面(uri)
売上画面 (uri) 仕入画面(shiire)
決済画面 (kesai)
仕入画面 (shiire)
権限によって画面を制限したいので動的画面と表現しました
遷移画面を動的にしたかったので質問を致しました。
管理メニューが管理職、一般社員で、表示される画面が異なります。
例
管理職 一般社員
遷移画面が4画面 遷移画面が3画面
社員情報画面(inf) 売上画面(uri)
売上画面 (uri) 仕入画面(shiire)
決済画面 (kesai)
仕入画面 (shiire)
権限によって画面を制限したいので動的画面と表現しました
遷移画面を動的にしたかったので質問を致しました。
投稿者 KOZ  (社会人)
投稿日時
2024/11/1 01:17:57
前の質問が解決したなら、解決済にしてください。
さて、何をもって”動的”とするのか不明確ですが、たとえばこんな方法があります。
ジェネリックを使う方法
クラス名を指定する方法
さて、何をもって”動的”とするのか不明確ですが、たとえばこんな方法があります。
ジェネリックを使う方法
Sub CreateAndShow(Of T As {Form, New})()
Dim frm As New T()
frm.Show()
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
CreateAndShow(Of Form2)()
End Sub
クラス名を指定する方法
Sub CreateAndShow(formClassName As String)
Dim formType As Type = Type.GetType(formClassName)
Dim instance As Form = DirectCast(Activator.CreateInstance(formType), Form)
instance.Show()
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
CreateAndShow("WindowsApp1.Form2")
End Sub
投稿者 ケンケン  (社会人)
投稿日時
2024/10/31 11:12:01
Dim form2 As New Form2()
form2.Show()
↑ 上記のロジックで静的画面が表示されますが
動的に画面を起動したいですが何方か分かる方ご教授お願いします。
form2.Show()
↑ 上記のロジックで静的画面が表示されますが
動的に画面を起動したいですが何方か分かる方ご教授お願いします。
クラス名を指定する方法で解決しました。