【发布时间】:2011-09-15 22:06:07
【问题描述】:
大家好!我在 VB.NET 中有一个问题。在为登录屏幕创建和测试我的 GUI 以显示工资单系统的主页时,出现了这个问题。
启动画面正常加载,并出现登录表单。我输入我的用户名和密码(例如用户名:Admin,密码:12345),登录成功。问题出在:当主菜单出现时,登录屏幕再次出现,此时,该屏幕应该已经关闭。我在使用 Show、Hide 和 Close 时遇到任何问题吗?
这是我的三种形式的代码。
A.启动画面
Public Class frmSplashScreen
Private Sub tmrSplashScreen_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrSplashScreen.Tick
Me.Hide()
frmLogin.Focus()
frmLogin.Show()
End Sub
End Class
B.登录表单(用于系统访问)
Public Class frmLogin
Public userName As String
Public passWord As String
Private Sub cmdExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdExit.Click
End
End Sub
Private Sub cmdSubmit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdSubmit.Click
userName = txtUsername.Text
passWord = txtPassword.Text
If userName = "Admin" And passWord = "12345" Then
MsgBox("Access Granted! Welcome to BYTE!", MsgBoxStyle.Information, "Byte EGC Payroll System")
Me.Close()
frmMainMenu.Show()
frmMainMenu.Focus()
Else
MsgBox("Access Denied!", MsgBoxStyle.Critical, "Byte EGC Payroll System")
End If
End Sub
结束类
最后:
C.主菜单。
Public Class frmMainMenu
Private Sub ExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitToolStripMenuItem.Click
End
End Sub
Private Sub frmMainMenu_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.WindowState = FormWindowState.Maximized
End Sub
Private Sub AboutToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutToolStripMenuItem.Click
MsgBox("Byte" & vbCrLf & "By: JU-CHAN", vbInformation, "Byte Payroll System")
End Sub
结束类
非常感谢您的帮助。谢谢! :)
【问题讨论】:
-
闪屏的目的是让人们无缘无故地等待,从而惹恼他们吗?另外,我假设这是伪造的代码,并且您实际上没有像生产系统中那样硬编码的密码。对吗?
-
嗯...您可能是对的,但登录屏幕的 if-else 仅用于让我的教师检查我的整个系统进行评分。我完全了解登录屏幕在实际程序中的实际用途。但是,我还是会在这里考虑您的帖子,其中您说启动画面是邪恶的。我同意这一点。 :)