向其他项目中的属性传递属性的方法。从基类打开窗体的方法

本文介绍了一种在不使用导入的情况下动态加载DLL文件并生成窗体的方法。此方法通过传递参数来设置窗体的所有者及界面间的参数传递,并提供了一个具体的使用示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  '
    ' 機能      : 窗体的表示处理    '
    ' 引き数    : assemblyname - 

    '             formname - 窗体名

    '             parameter - 画面间的传值
    '             parent - Owner窗体
    '
    ' 返り値    :新窗体
    '
    ' 機能説明  : 不使用imports,而是动态的读取dll文件生成窗体。
    '             呼び出されたフォームは引数parentで指定したフォームがOwnerとして、
    '             引数parameterとして指定した画面間パラメータがGUIParameterとして参照できる。
    '
    ' 備考      : 参照するライブラリはWindowsFormを含み、GUIParameterプロパティ
    '             (型はCommon.GUIParam)を持たなければならない。
    '             ライブラリの配置はアプリケーションと同じ階層に配置すること。
    '             アセンブリ名はプロジェクトのプロパティで設定したものを指定する。
    '             (DLLファイル名ではない。)
    '             使用例)
    '                 ' アセンブリ名1000TestFormのTest.TestForm.TargetFormフォームを表示する
    '                 ' GUIParameterは定義済みでOwnerはMe
    '                 MenuUtil.ShowFormByName("1000TestForm", _
    '                     "Test.TestForm.TargetForm", GUIParameter, Me.ParentForm)
    '
    Public Shared Function ShowDialogFormByName(ByVal assemblyname As String, ByVal formname As String, _
        ByVal parameter As GUIParam, ByVal parent As IWin32Window) As System.Windows.Forms.Form


        Dim asm As Assembly ' アセンブリ(dll)
        Dim frm As Object ' 遷移先Formのインスタンス
        Dim type As Type ' 遷移先Formのタイプ

        ' アセンブリ読み込み
        asm = Assembly.Load(assemblyname)
        ' リフレクション
        frm = asm.CreateInstance(formname)
        type = frm.GetType

        ' GUIParamterの渡し
        type.InvokeMember("GUIParameter", _
        BindingFlags.SetProperty, _
        Nothing, _
        frm, _
        New Object() {parameter})

        ' Showメソッドの呼び出し
        type.InvokeMember("ShowDialog", _
             BindingFlags.Public Or _
             BindingFlags.InvokeMethod Or _
             BindingFlags.Instance, _
             Nothing, frm, New Object() {parent}, _
             Nothing, Nothing, New String() {"owner"})

        Return CType(frm, System.Windows.Forms.Form)

    End Function 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值