我正在使用一些旧的VB6代码,并且有一个我试图纠正的场景。我有一个表单,允许您输入个人ID (使用租户在顶部的文本框中),然后单击“显示”,它会在同一表单的文本框中列出约会。还有一个按钮可以加载一个新表单,允许用户编辑显示的数据并保存更改。
例如,把人的年龄从65岁改为64岁。我做了这个更改,并保存它。保存成功,我卸载表单以返回到Form1。但是,我必须再次单击"show“刷新文本框中显示的数据,以确保更改可见。我不知道如何刷新这个表单,所以用户不必单击"show“来用新值重新填充文本框。有人能帮上忙吗?我不能只创建一个Form1的新实例,因为如果我创建了一个新实例,person ID字段将为空。
谢谢!
简而言之:如何刷新表单以获取最新数据,同时仍然获得相关人员ID。
发布于 2013-01-14 20:45:00
Call Me.frmParent.Refresh我用它来刷新屏幕而不丢失数据。我不得不挖掘大量的旧代码来解决这个问题。这一节很久以前就写好了,而且效果很好。
Public Sub Refresh()
Call cmdDetails_Click
If tvwScreeningSchedule.Nodes.Count > 0 Then
tvwScreeningSchedule.SelectedItem = tvwScreeningSchedule.Nodes(1)
Call tvwScreeningSchedule_Click
End If
End Sub这是一个非常特殊的函数,"cmdDetails_Click“包含许多自定义验证,但它与AngryHackers answer并不太相似。
发布于 2013-01-11 23:06:57
这里没有足够的信息来回答您的问题。在这种情况下,您将使用的一般模式如下:
Me传递给EditForm (可能通过设置fires的保存按钮单击事件触发,它调用Parent.ReloadData (其中Parent是启动EditForm的ViewForm )。发布于 2013-01-12 08:54:30
以下是应该有效的方法。在编辑器中有一个公共属性,该属性返回表单是否被取消。(.Cancelled)。您将拥有一个对象,该对象包含您试图更改其年龄的person的属性。那就很简单了。主窗体中的代码:
dim oPerson as clsPerson
dim oFrm as frmAgeEditor
set oPerson = GetCurrentPerson()
set oFrm = new frmAgeEditor
with oFrm
set .Person = oPerson
.Show vbModal
if not .Cancelled then
' Update Main form with the contents of oPerson
end if
end with https://stackoverflow.com/questions/14280731
复制相似问题