WinForm设计之插件
Author:水如烟
这个插件方案比较简单,如果只是自己使用的话,那可以应付过去。如果是做一般应用软件并面向大众的话,那就不妥了。最不妥的是安全,因为它把整个主窗体都暴露给插件设计者。
示例插件AddInsClassLibrary.Dll:
Imports LzmTW.uSystem.uWindows.AddIns
<AddIns("About", "AddInsClassLibrary.About", Author:="LzmTW", Description:="自动添加关于对话框", Version:="1.0.0.0", Lasttime:="2007年7月28日")> _
Public Class About
Implements LzmTW.uSystem.uWindows.AddIns.IPackage
Public Sub Load(ByVal mainform As Windows.Forms.Form) Implements LzmTW.uSystem.uWindows.AddIns.IPackage.Load
LzmTW.uSystem.uWindows.uForms.uMainForm.AboutFormAddtoMainForm.Instance(mainform)
End Sub
Public Sub Unload() Implements LzmTW.uSystem.uWindows.AddIns.IPackage.Unload
End Sub
End Class
<AddIns("About", "AddInsClassLibrary.About", Author:="LzmTW", Description:="自动添加关于对话框", Version:="1.0.0.0", Lasttime:="2007年7月28日")> _
Public Class About
Implements LzmTW.uSystem.uWindows.AddIns.IPackage
Public Sub Load(ByVal mainform As Windows.Forms.Form) Implements LzmTW.uSystem.uWindows.AddIns.IPackage.Load
LzmTW.uSystem.uWindows.uForms.uMainForm.AboutFormAddtoMainForm.Instance(mainform)
End Sub
Public Sub Unload() Implements LzmTW.uSystem.uWindows.AddIns.IPackage.Unload
End Sub
End Class
主窗体使用插件系统的代码:
Public Class MainForm
Sub New()
' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
Dim gAddInsManager As New LzmTW.uSystem.uWindows.AddIns.AddInsManager(Me)
End Sub
End Class
Sub New()
' 此调用是 Windows 窗体设计器所必需的。
InitializeComponent()
' 在 InitializeComponent() 调用之后添加任何初始化。
Dim gAddInsManager As New LzmTW.uSystem.uWindows.AddIns.AddInsManager(Me)
End Sub
End Class
很简单的。
设计时的窗体,
运行后:
添加插件:
功能:
下一次运行时,自动安装插件:
自己打算说的,到现在也终于“说完”了。不是之处,请谅。仅供参考。