【发布时间】:2017-09-22 13:35:06
【问题描述】:
我有两个项目。一是GUI,二是DLL。
我在 Form1 的 DLL 中调用 函数
DLL 函数必须与表单接口(例如,更改背景颜色)
我想获取调用表单作为参考,而不作为参数传递。
这是表格 1 中的示例
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
ChangeBackColor()
End Sub
DLL 函数
Public Sub ChangeBackColor()
Dim CallingForm as Form
'''GET PARENT HERE'''
CallingForm.BackColor = Color.Cyan
End Sub
显然,如果我每次都通过 Form,我可以做到这一点,但尽量避免这种情况。 提前致谢
有人注意到此问题已在其他地方得到解答。据我所知,它还没有被回答(或被问到)。这特定于引用表单,而不是方法或其他对象。
我已经通过引用 Form.ActiveForm 获得了引用调用表单的解决方案,现在我在下面回答我自己的问题。
【问题讨论】:
-
为什么需要从 Form 调用 DLL 方法来更改 Form 的背景色?
-
@Plutonix 这只是一个例子。真正的代码要大得多,和颜色无关,但参考原理是一样的
-
但如果你必须知道.. DLL 会截取调用它的应用程序的屏幕截图。我需要让表单找到它的大小和位置,这样屏幕截图就不是全屏的。这个dll会在其他应用程序中使用,所以它与应用程序是分开的