gpt4 book ai didi

vb.net - vb 表单重新出现而不请求

转载 作者:行者123 更新时间:2023-12-04 16:36:38 27 4
gpt4 key购买 nike

我已将我的问题缩小到这个简单的案例,但似乎无法找到发生了什么:

  • 我有两个表单,一个只有一个按钮,另一个是空的。
  • 单击按钮时,form1 隐藏和显示 form2
  • 出现时,form2隐藏,form1再次显示

此外,当输入VisibleChanged时,Form2会以一个MsgBox停止代码如下。

现在,点击按钮时的预期行为是

  • Form1 隐藏
  • 由于 Form1 调用 Form2.show,第一个可见的 MsgBox 变为真
  • 由于 Form2 调用 Me.hide,可见的第二个 MsgBox 变为假
  • Form1 出现

这一切确实发生了,但是,

  • Form2 出现(Form1 还在)
  • 出现一个消息框(告诉 form2.visible 再次为 True)
  • 出现一个消息框(告诉 form2.visible 现在是 False)
  • Form2隐藏

知道为什么吗?

代码如下:

Public Class Form1
Private Sub ButtonGO_Click(sender As Object, e As EventArgs) Handles ButtonGO.Click
Me.Hide()
Form2.Show()
End Sub
End Class

还有

Public Class Form2
Dim calls As Integer = 0
Private Sub Form2_VisibleChanged(sender As Object, e As EventArgs) Handles Me.VisibleChanged
calls += 1
MsgBox("calling : " & calls & " / Me.Visible : " & Me.Visible)
If Me.Visible Then
Me.Hide()
Form1.Show()
End If
End Sub
End Class

最佳答案

好的,所以为了结束:感谢您的回答,他们告诉您如何为“完整的”VB 编码器做些什么。

至于我的学生,即只使用拖放 VB 的人,解决方案是检查 Form1 中的条件,然后在出现时调用 Form2。

注意:这可能看起来微不足道,但它可能不符合“封装”的思想。在我的案例中,这就是首先提出这个问题的原因。

关于vb.net - vb 表单重新出现而不请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44019450/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com