gpt4 book ai didi

vb.net - 形式出乎意料

转载 作者:行者123 更新时间:2023-12-02 04:52:53 26 4
gpt4 key购买 nike

我会尽力解释这一点。

我有一个包含多种窗体的 Windows 窗体应用程序。第一种形式to open 是一种非模态形式,作为命令形式发出各种格式到底层预订程序。第二种形式也打开了,这基本上是我的申请的主要形式。此表单包含多个复选框以运行方法更改预订程序。这种形式也是无模式的。每个盒子被检查并发运行并执行删除、更改和添加到下面的res程序。可以在任何给定时间检查各种框。下面是代码处理复选框:

Private Sub frmOWTMain_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyUp

If e.KeyCode = Keys.Enter Then
Me.Hide() 'here i want to hide the OWTMain form
Call ckforPNR()
If Me.cbPricing.Checked Then
Call doPricing()
Me.cbPricing.Checked = false
End If
If Me.cbUdids.Checked Then
frmUdids.Show()
Me.cbUdids.Checked = False
End If
If Me.cbMod.Checked Then
Call doModUdids()
End If
If Me.cbFare.Checked Then
Call doFareSavings()
Me.cbFare.Checked = False
End If
End If
Me.show() 'This is the problem. This runs during method calls. All I'm
'looking to do is re display the OWTMain form.
End Sub

此时我想重新显示上面的 OWTMain 窗体。这是我遇到问题的地方。如您所见,许多方法被调用这涉及向用户显示其他形式。这些我都不想要表格是模态的,因为我希望原始的第一个打开的表格仍然是能够向 res 程序发出命令以查看其他表单所需的信息。

下面是一些方法调用的例子:

Private Sub doPricing()
Dim myPrice As New Pricing 'a call to another class that handles pricing
If myPrice.getTQT = False Then
frmAddPricing.ShowDialog() 'showing new forms
Else
frmCurPricing.ShowDialog()
End If
End Sub

Private Sub doFareSavings()
Dim myPrice As New Pricing
If myPrice.checkForFS = False Then
frmFS.ShowDialog() 'showing new forms
End If
If myPrice.checkForFS = True Then
frmFSVerify.ShowDialog()
End If
End Sub

当我调用这些方法中的任何一个时,OWTMain 表单会过早显示,而其他来自被调用方法的表单仍在运行。我希望顶部的代码能够运行按通话顺序排列,但事实并非如此。我只想重新显示 OWTMain运行所有代码后形成。如果没有,我无法弄清楚创建大量代码来最小化窗口的打开和关闭。

如有任何帮助,我们将不胜感激。谢谢你。约翰

最佳答案

这将检查所有子窗体是否已关闭,然后重新显示主窗体。

删除退出的 me.show()

Public Sub ReShowMainForm()
' add all sub forms to this check
if frmFS.Visible = false andalso
frmUdids.Visible = false andalso
frmFSVerify.Visble = false then
Me.Show
End If
End Sub

将 xyzForm.Show 更改为 xyzForm.Show(me) 以使主窗体可用作子窗体的父窗体。

处理每个子窗体中的FormClosed事件,添加如下代码

DirectCast( me.parent, frmOWTMain).ReShowMainForm()

关于vb.net - 形式出乎意料,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26135076/

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