我们有一个“核心”系统,我们用它来经营业务,任何时候都有大约15-18人使用它。该程序是用VB.NET编写的,有大约165个表单。
它的工作方式是当用户运行程序时,他/她被提示登录,如果登录成功,则显示“Main”表单,其中包含许多菜单(Customers,Suppliers ...)。从那里,他们可以点击菜单,在“Main”上打开另一个表单(“Main”表单需要在后台显示,因为它显示的信息与用户在其他屏幕时相关)< / p>
我们遇到的问题是,如果用户在使用“核心”系统(Outlook,Word,Chrome,真正的任何东西)时打开其他程序并切换到另一个程序然后再返回系统,它只会显示“主要”形式和顶部打开的任何其他形式消失。我们解决这个问题的方法是切换回他们打开的其他程序,然后单击窗口右上角的最小化按钮,直到所有其他程序都被最小化,这样只会使“Core”系统可见。然而,这对所有用户(包括我自己和其他开发人员)来说都是一种麻烦,我们真的需要解决这个问题,以免让员工高兴:)
我希望任何有关正确方向的建议或指示可以帮助我们解决这个问题,如果您需要更多信息,请随时询问。
答案 0 :(得分:1)
您似乎正在ChildForm
创建MainForm
,但ChildForm
本身正在显示Me.ShowDialog()
。您应该尝试的是显示MainForm
中的表单并将MainForm
作为父项传递。这应该保持表格与其父母和顶部相关联。例如:
childForm.showDialog(Me)
其中Me
是MainForm
。 This是该方法的文档。
这是重要的部分:
所有者类型:System.Windows.Forms.IWin32Window
任何实现IWin32Window的对象,它代表将拥有模式对话框的顶级窗口。
这有意义吗?
答案 1 :(得分:0)
更改代码以显示对话框会稍微改变代码的行为,就像执行中的主要操作一直持续到关闭子窗体
但是你可以只使用show作为孩子(不是对话框)
childForm.show (Me)
这不会改变任何东西,除非你点击主表格时它会在其上显示整个孩子。