在窗体之间切换时如何保留窗体的控制值

用户名

它可以通过两种形式输入特定交易的所有信息。我希望能够在这两种形式之间来回切换,以保留在每种形式上输入的内容,直到单击“保存”按钮为止。

我认为我应该能够使用Form2.Show,Me.Hide,然后再使用Form1.Show,Me.Hide。我第一次去Form2时会经过Form2加载事件(这是合理的),但是对Form1上控件内容的任何了解都已经丢失了。即使Form1隐藏(而不是关闭),其控件的内容也消失了。为什么?

第二次我去Form2时,不会触发加载事件,因为Form2被隐藏了,此时所有Form1控件的内容都可用。因此,在Form1和Form2之间来回切换时,第二次访问Form2后,它可以按我的意愿工作。但是,我需要它在第一次和每次工作。

几天来,我一直试图理解这一点。我已经注释掉几乎每一行代码,一步步遍历代码,谷歌搜索直到脸色发青(对此有很多文章),但我仍然不知道为什么会发生这种行为。

谁能解释这个现象?或者更好的告诉我要完成这项工作需要做什么。

我在转到Form2的Form1按钮后面有此代码

If Form2 Is Nothing Then
    Dim Form2 As New Form2
End If
Form2.Show()
Me.Hide()

并将此代码隐藏在Form2按钮后面,以返回到Form1

Form1.Show
Me.Hide
普萨·庞杰伦德拉普

这可能就是您所缺少的:

Class Form1
     Private f2 As Form2       ' this is Form1's reference to the
                               ' form2 instance

稍后,当您单击以转到form2时,您的原始代码只需要进行一些小的调整:

If f2 Is Nothing Then
    f2 = New Form2(Me)             ' set declared variable to new instance   
End If
F2.Show()
Me.Hide()

在这种情况下,Form1使用您在使用构造函数之前显示的技巧传递了引用

Sub New(frm As Form1)         ' this is in Form2 only
   f1 = frm               
End Sub

您不需要在Form1中使用它,因为他/他正在创建自己的f2对象引用。

您原始代码中的主要问题是:Dim Form2 As New Form2您每次都在创建一个新的Form2(我怀疑它驻留在一个事件或子视图中)。那些新的instances不知道以前实例中的控制值。声明F1F2如图所示,将为其提供模块/表单级别Scope

Dim声明一个变量及其类型。f1是Form1类型的。如果它是对象变量,则不会创建对象

New创建对象类型(引用类型)的实例。这直接与Sub New该类中方法有关。当您使用时New,会Sub New被调用,因此任何特殊的事情都可以在那发生。Integer这样的值类型不需要创建或实例化,只需声明即可。

你声明(Dim)一个变量决定了它Scope如果在Sub中执行此操作,则变量或对象仅存在于该Sub中。如果您在表单/类级别执行此操作,则它具有表单/类级别的范围。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在窗体之间切换时如何保留窗体的控制值

来自分类Dev

在窗体之间切换时出现System.StackOverflowException

来自分类Dev

VB6 +如何通过按钮在窗体的窗口/框架之间切换

来自分类Dev

在 Windows 窗体之间切换时的闪烁效果

来自分类Dev

如何在2个Windows窗体之间来回切换

来自分类Dev

在2个字段之间切换连续子窗体的排序访问VBA

来自分类Dev

在React中的视图之间切换时保留输入值

来自分类Dev

Windows窗体中的切换开关控件

来自分类Dev

Windows窗体中的切换开关控件

来自分类Dev

'gsettings' 在 Ubuntu 18.04 上设置滚轮以在窗口之间切换时抛出错误

来自分类Dev

如何从放置在窗体上的面板中捕获值

来自分类Dev

在窗体区域外绘图时如何重绘

来自分类Dev

在formarray控件和另一个窗体控件之间切换是否无法在angular中工作?

来自分类Dev

PyQt5 在窗口之间切换

来自分类Dev

Windows 窗体 - 在窗体加载时重置整数

来自分类Dev

如何在嵌套对象中的值之间切换

来自分类Dev

在片段之间切换时如何保存地图状态?

来自分类Dev

在活动之间切换时如何避免出现白屏

来自分类Dev

在片段之间切换时如何处理相机?

来自分类Dev

在窗体上的控件中创建值

来自分类Dev

根据字段值在窗体上的addError

来自分类Dev

在配置值组之间切换

来自分类Dev

如何从串行控制台在Unity和GNOME(或恢复控制台)之间切换

来自分类Dev

如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?

来自分类Dev

如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?

来自分类Dev

在Windows窗体之间发送值

来自分类Dev

在窗体上方打开另一个窗体后如何关闭窗体

来自分类Dev

如何在Windows之间切换

来自分类Dev

如何在jpanels之间切换?

Related 相关文章

  1. 1

    在窗体之间切换时如何保留窗体的控制值

  2. 2

    在窗体之间切换时出现System.StackOverflowException

  3. 3

    VB6 +如何通过按钮在窗体的窗口/框架之间切换

  4. 4

    在 Windows 窗体之间切换时的闪烁效果

  5. 5

    如何在2个Windows窗体之间来回切换

  6. 6

    在2个字段之间切换连续子窗体的排序访问VBA

  7. 7

    在React中的视图之间切换时保留输入值

  8. 8

    Windows窗体中的切换开关控件

  9. 9

    Windows窗体中的切换开关控件

  10. 10

    'gsettings' 在 Ubuntu 18.04 上设置滚轮以在窗口之间切换时抛出错误

  11. 11

    如何从放置在窗体上的面板中捕获值

  12. 12

    在窗体区域外绘图时如何重绘

  13. 13

    在formarray控件和另一个窗体控件之间切换是否无法在angular中工作?

  14. 14

    PyQt5 在窗口之间切换

  15. 15

    Windows 窗体 - 在窗体加载时重置整数

  16. 16

    如何在嵌套对象中的值之间切换

  17. 17

    在片段之间切换时如何保存地图状态?

  18. 18

    在活动之间切换时如何避免出现白屏

  19. 19

    在片段之间切换时如何处理相机?

  20. 20

    在窗体上的控件中创建值

  21. 21

    根据字段值在窗体上的addError

  22. 22

    在配置值组之间切换

  23. 23

    如何从串行控制台在Unity和GNOME(或恢复控制台)之间切换

  24. 24

    如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?

  25. 25

    如何在tmux中像在屏幕上那样在窗口内的窗格之间循环切换?

  26. 26

    在Windows窗体之间发送值

  27. 27

    在窗体上方打开另一个窗体后如何关闭窗体

  28. 28

    如何在Windows之间切换

  29. 29

    如何在jpanels之间切换?

热门标签

归档