【发布时间】:2009-05-04 19:43:51
【问题描述】:
我正在尝试将业务对象从一个 WinForm 传递到另一个 WinForm 进行修改,然后使用更新的值重新填充第一个表单上的文本框等。
但是,当代码控制返回到第一种形式时,第二种形式中设置的对象值似乎没有“粘住”。
有没有办法在 VB.NET 中查看对象的内存位置?我想首先确保第二个表单上的对象变量指向与第一个表单上的对象相同的内存地址。然后我可以从那里拿走。
在一个单独的 VB 项目中,我将一个简单对象传递给第二个窗体,修改了值,并在第一个窗体上重新显示了对象的值。它工作得很好。在我的真实应用程序中,我传递的对象是另一个对象的属性,这可能是它不起作用的原因。
解决方案:问题是我使用了一个 DeepCopy() 函数,我发现它可以简化将一个对象的属性复制到另一个对象的过程。删除该函数并手动将值设置为第二个表单上传递的对象(例如 obj.property1 = searchResult.property1)会使一切都按预期运行。
【问题讨论】: