我有一个小型VB.NET应用程序,目前有两种形式;第一种是用户可以选择要单击的按钮的主要形式。我有第二个表单,它处理针对Active Directory的身份验证。当用户单击登录表单上的"确定"时,名为"Authenticated"的公共属性将设置为"True"。我想要的是,但我真的很难理解;在主窗体上,当用户单击其中一个按钮时,它将检查"Authenticated"属性的值,如果它为false,则启动登录窗体。这一点很好,但我不确定如何让主窗体等待用户输入凭据并单击"OK",然后能够在对按钮执行操作之前重新检查"Authenticated'"状态。
这个主题之前在这篇文章中已经大致涵盖了——在vb.net 中的主表单之前显示登录表单
最后一条评论来自Beth的一个人,他提到能够通过它的声音来实现我试图通过从登录表单中引发事件来实现的目标……我想知道是否有人能给我更多关于我如何实现这一目标的细节?
非常感谢您抽出时间。
James
这应该是相当直接的。
在启动表单中添加一个Authenticated
属性,并将其默认为False
表单加载时显示身份验证表单:
Public Class frmMain
Friend Property Authenticated As Boolean = False
Private Sub frmMain_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If Not _authenticated Then frmAuthenticate.ShowDialog()
If _authenticated Then
MessageBox.Show("You have been authenticated")
Else
MessageBox.Show("You have not authenticated")
Me.Close()
End If
End Sub
End Class
然后在您的身份验证表单中,如果身份验证有效,则仅将main forms Authenticated属性设置为true:
Public Class frmAuthenticate
Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click
If AuthenticatedOK() Then frmMain.Authenticated = True
Me.Close()
End Sub
Private Function AuthenticatedOK() As Boolean
Return False 'do your auth logic here
End Function
Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click
Me.Close()
End Sub
End Class