winforms - 防止子表单切换回上次打开的表单
问题描述
我有一个 MDI 表单,它打开一个用户无法关闭的停靠子表单(用户仪表板)。然后,MDI 可以打开 MDI 内的停靠子窗体或非停靠子窗体。
我遇到的问题是,如果用户打开一个客户信息停靠表单并在该表单上点击保存,则保存后它会自动切换到仪表板表单。
在加载和加载仪表板时
'Display Main Dashboard in MDI
Dim fc As FormCollection = Application.OpenForms
Dim FormFound As Boolean = False
For Each frm As Form In fc
If frm.Name = "frmDashboard" Then
frm.Focus()
FormFound = True
End If
Next
If FormFound = False Then
Dim frm As New frmDashboard
With frm
.MdiParent = Me
'.Dock = DockStyle.Fill
.FormBorderStyle = FormBorderStyle.Fixed3D
.WindowState = FormWindowState.Maximized
.Show()
_log.Info("Opening the dashboard form")
End With
End If
如果用户调用客户表单
Private Sub tsbCustVend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tsbCustVend.Click
Try
tvNavigation.Enabled = False
Me.Cursor = Cursors.WaitCursor
Dim fc As FormCollection = Application.OpenForms
Dim FormFound As Boolean = False
For Each frm As Form In fc
If frm.Name = "frmCustomer" Then
frm.Focus()
FormFound = True
End If
Next
If FormFound = False Then
Dim CustForm As New frmCustomer
_log.Info("Opening form " & CustForm.Name)
With CustForm
.MdiParent = Me
'.Dock = DockStyle.Fill
.FormBorderStyle = FormBorderStyle.Sizable
.WindowState = FormWindowState.Maximized
End With
CustForm.Show()
End If
Catch ex As Exception
_log.Error(ex.ToString & vbCrLf & ex.StackTrace.ToString)
MessageBox.Show(ex.ToString, "", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
Me.Invalidate()
tvNavigation.Enabled = True
Me.Cursor = Cursors.Default
End Try
End Sub
在用户保存新的或现有的客户后,后台仪表板表单被带到前面并集中。
感谢任何帮助谢谢
解决方案
推荐阅读
- c# - 将查询字符串从 VBA 转换为 C# 并使用 HttpClient 发送
- firebase - 在 React Native 中不显示 console.log(action)
- typescript - 忽略 skaffold watch 中的文件夹/文件
- python - 处理不同位置值变化变量的最佳方法是什么?
- angular - 在 mat-table 数据不显示
- sql - 获取特定条件下的 Pivot 值
- sql - 如何在pl sql中编写一个每30个字符换行的函数
- css - 如何设置边距值的scss动态类名
- jquery - Typescript 在添加 jquery 时失败,无法解析命名空间 Sizzle
- javascript - 只防止文本区域中的空格