对于我正在从事的项目,在用户登录到程序之前,“启动表单”(称为HomeForm
)需要是不可见的。现在,我已经对其进行设置,以便通过在登录表单的HomeForm.Visible = False
方法中设置Load
来使该表单不可见。
Private Sub LoginForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
HomeForm.Visible = False
End Sub
我正在尝试通过这种方式进行设置,以便当用户注销时,表单也将消失。
Private Sub File_Logout_Click(sender As Object, e As EventArgs) Handles File_Logout.Click
If MessageBox.Show("Are you sure you wish to log out?", "Logout Confirmation", MessageBoxButtons.YesNoCancel) = DialogResult.Yes Then
LoggedIn = False
LoginForm.ShowDialog()
End If
End Sub
现在我遇到了一个小问题:HomeForm
在启动时会在屏幕上快速闪烁,然后变得不可见。如何阻止这种情况发生?
我尝试在Me.Visible = False
的构造函数和Load
方法中都设置HomeForm
,但没有完成任何事情。所以我不确定如何解决这个问题。
Public Sub New()
InitializeComponent()
Me.Visible = False
End Sub
Private Sub HomeForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Visible = False
LoginForm.ShowDialog()
End Sub
答案 0 :(得分:2)
执行此操作的正确方法是处理应用程序的Startup
事件,在其中执行登录,如果用户未成功登录,则将e.Cancel
设置为True
。您可以通过单击项目属性的“应用程序”页面上的“查看应用程序事件”按钮来访问相应的代码文件,然后使用代码编辑器顶部的下拉列表创建事件处理程序。该事件处理程序在创建启动表单之前执行,并且如果e.Cancel
设置为True
,则应用程序将退出,而根本不会创建启动表单。更多详细信息here。