我创建了一个 VB.NET,里面有两个项目。一个是带有一个类文件的类库(比如说 Clas1.vb),另一个只是一种形式。我将 Class library 引用到另一种形式中,因此我可以在其中使用它的方法。但是,Class1.vb 无法获取正在使用它的项目。那么我将如何处理单击 Form1 上的按钮的位置,并且它背后的代码是 ClasslibraryInProject.Class1.MaximizeForm() Class1.vb 知道哪个项目/表单将该命令传递给它,然后它执行 Windowsstate = FormWindowState.Form1 上的最大化命令。有任何想法吗?
问问题
68 次
2 回答
0
一个稍微简单的方法就是将表单传递给您的 MaximizeForm 函数:
Public Class Class1
Public Sub MaximizeForm(sender as Object)
Select Case sender.Name
Case "Form1"
' cast the sender as a form and maximize it
Directcast(sender,Form).WindowState = FormWindowState.Maximized
Case Else
' ...
End Select
End Sub
End Class
于 2013-01-20T23:26:40.347 回答
0
一种方法是让您的构造函数要求父级与其关联:
Public Class Class1
Private _parent as Form
Public Sub New (form as Form)
_parent = form
End Sub
'...
End Class
在您的表单中,当您创建它时,您在构造函数中设置该属性:
'...
Dim myClass1 as New Class1 (Me) ' The parent form
'...
然后,在 Class1 中,您可以测试该属性:
Public Class Class1
Private _parent as Form
Public Sub New (form as Form)
_parent = form
End Sub
Public Sub DoStuff
If _parent.Name = "whatever" Then
'...
End If
End Sub
End Class
这是相当标准的,您会在 .Net 框架内的对话框和消息框中看到类似的行为。
根据父表单的名称来做这件事有点恶心。但这是另一天的讨论;)
于 2013-01-20T23:16:23.567 回答