vb.net - 在 Form1 中设置 Form2 的属性不会产生任何结果
问题描述
我将一个 VB6 项目升级到 .NET,但没有按预期工作。
我曾经能够将公共属性从一个类加载到另一个类中,但这些属性在检查时为空。
Form1:
Dim frm1 As New Form1
frm1.empId = Me.empId.Text
Form2.Show()
Form2:
Public empId As Integer
Form_Load in Form2:
MsgBox(empId) // Null
我期待 Form2 回显员工 ID,但它为空或为空。
我究竟做错了什么?
编辑
这是我正在使用的确切代码。
This is FrmSerialize
Private Sub CmdLogin_Click(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles cmdLogin.Click
FrmAutoCheck.empId = Me.empId.Text
FrmAutoCheck.orderNo = Me.orderNo.Text
FrmAutoCheck.partNo = Me.partNo.Text
FrmAutoCheck.Show()
Me.Hide()
End Sub
This is FrmAutoCheck: This is where I want to echo my property
Private Sub FrmAutoCheck_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load
'The empId is a public property, set at the top of the FrmAutoCheck class
'So, I am expecting to see the value of empId, since Form1.CmdLogin set this value
MsgBox(empId)
End Sub
解决方案
您正在设置 的属性empId
,Form1
但正在加载Form2
。试试看:
Form1:
Dim frm2 As New Form2
frm2.empId = Me.empId.Text
frm2.Show()
当你从 VB6 升级到 .Net 时,它在调用方法时不会为表单创建对象Show()
,而是调用FormX.Show()
. 您必须通过实例化类并设置属性来更改它,如代码所示。
推荐阅读
- swift - viewDidLoad() 和全局变量
- postgresql - PostgreSQL 在单个查询中随时间滚动标准偏差
- java - android.media.AudioRecord - 无效的音频缓冲区大小
- c# - 花括号减少新行的比例
- database - 类型不匹配,预期:DBIOAction[NotInferedR, NoStream, Nothing],实际:Future[PortalPostgresProfile.ProfileAction[Int, NoStream, Effect.Write]]
- excel - 如何从字符串中获取值
- python - 如何在分类问题的熊猫数据框中将分类数据与压缩稀疏行矩阵混合
- swift - 在继续下一个请求或调度队列中的下一个 DispatchWorkItem 之前,我如何等待接收来自 DispatchWorkItem 的响应
- pyspark - Databricks 如何为集群做自动伸缩
- concurrency - AWS Athena 并发限制:提交的查询数 VS 正在运行的查询数