【发布时间】:2015-03-19 10:55:49
【问题描述】:
这是我的问题。
我正在 VB.NET 中创建一个项目,该项目(当前)存在于 1 个类(我们在这里称之为 User.vb)和 2 个 WinForms(frmDisplay 和 frmMain)中。
假设 User.vb 目前看起来像这样:
Public Class User
Private mName As String
Public Sub New(ByVal name As String)
Me.Name = name
End Sub
Public Property Name As String
Get
Return mName
End Get
Set(value As String)
mName = value
End Set
End Property
End Class
我们还假设 frmDisplay 表单只是一个带有文本字段 txtString 和按钮 btnSend 的表单。
Public Class frmDisplay
Dim usr As New User()
Private Sub btnSend_Click(sender As Object, e As EventArgs) Handles btnSend.Click
usr.Name = txtString.Text
frmMain.Show()
Me.Hide()
End Sub
End Class
在窗体 frmMain 上,我想达到我存储在第一个窗体上的 User 类中的属性 Name 中的值。 基本思路是(我知道这行不通):
Public Class frmMain
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
lblStoredString.Text = usr.Name << This is where I'm stuck
End Sub
End Class
我搜索了我的问题并阅读了很多帖子,但我似乎无法理解它。也许你们可以帮助我。
我是 VB.NET 和 WinForm-stuff 的新手(大约 3 个月的经验),但我过去在 C# 中使用 Web 应用程序进行过一些编程。
非常感谢您的每一点帮助。
提前非常感谢!
【问题讨论】:
-
如果用户对两种表单都很重要,则使其成为全局。创建一个模块,添加
Friend Usr As User。然后创建一个实例:usr = New User(无 Dim)。现在,两种形式都可以访问它。最好也使用显式表单实例。 -
使用每个表单都可以读取的共享模型。表单是 UI,不应该是数据存储库。无论@Plutonix 提出什么建议也是一个坏主意。
标签: vb.net winforms forms class properties