回 帖 发 新 帖 刷新版面

主题:登陆后,出现不了窗口,帮忙看一下。谢谢

Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
        Conn = New OleDb.OleDbConnection(Provider & ";" & Database)
        Conn.Open()
        SQL = "Select * From login Where Name='" & UsernameTextBox.Text & "' And Password='" & PasswordTextBox.Text & "'"
        Cmd = New OleDb.OleDbCommand(SQL, Conn)
        Rd = Cmd.ExecuteReader()
        If Rd.Read Then
            Dim form1 As New Form1
            form1.Show()
            Me.Hide()
        Else
            MessageBox.Show("密码错了", "错误提未", MessageBoxButtons.OK, MessageBoxIcon.Error)
            UsernameTextBox.Text = ""
            PasswordTextBox.Text = ""
            UsernameTextBox.Focus()

        End If
        Rd.Close()
        Conn.Close()
        Me.Close()
    End Sub

通过检证后。
出现不了Form1 
我想应该是
            Dim form1 As New Form1
            form1.Show()
这句的错误吧?
VB2005+ACCESS写的

麻烦了

回复列表 (共5个回复)

沙发

[quote]Dim form1 As New Form1[/quote]是有错误,但不是关键。
关键在于你的窗体1是否存在,如果存在,这又何必呢?如果不存在,要动态建立,那又何必呢?
另,你这个ok又是什么啊?皮之不存,毛将焉附?

板凳

窗体1 存在的.

那么应该如何更改会比较合理?

3 楼

[quote]            Dim form1 As New Form1
            form1.Show()
            Me.Hide()[/quote]
你这个ok在哪个窗体上哦?
不要说就是在form1上哈!!
上面的语句是可执行的,就是有点怪
我猜想你的ok就在form1上,刚刚创建了又被隐藏了,呵呵!
直接就form1.show

4 楼

看看这个,很好玩的!
创建一个新程序,什么都不改,然后添加4个按钮

Option Explicit
Dim Form1 As Form

Private Sub Command1_Click()
Set Form1 = New Form1
Form1.Show
'点了后有两个窗体重起的,把它拖开哈

End Sub

Private Sub Command2_Click()
MsgBox Me.Name & " " & Me.hWnd
End Sub

Private Sub Command3_Click()
Form1.Text1.Text = "asdf"
End Sub

Private Sub Command4_Click()
Text1.Text = "1234"
End Sub

Private Sub Form_Load()
Me.Show
DoEvents
MsgBox "me.hwnd " & Me.hWnd
End Sub

看看这个是什么效果,依次点哈,看你猜得出来不,呵呵[em18]
简直没懂vb为什么要搞这些名堂!

5 楼

根据当年苦读MSDN的经历,MSDN说Form1类似于隐性地在公共模块声明了一个全局变量
Public Form1 As New Form1
然后可以到处直接引用Form1这个对象(也就是类Form1的实例),当然也就可以改变它
(注意前一个Form1是一个变量名/对象名,后一个Form1是一个类名)

[quote]
Private Sub Command1_Click()
    Debug.Print Form1.hWnd  '对象Form1原来指向的窗口的句柄
    Set Form1 = New Form1   '把对象Form1指向刚新创建的对象
    Form1.Show              '显示
    Debug.Print Form1.hWnd  '对象Form1新指向的窗口的句柄
End Sub
[/quote]
结果:
[quote]
 399438 
 1710214 
[/quote]
可以看出,我的推测应该是正确的。

不过这个的确很令人晕,对象名(或者说变量名)与类名重合。

我来回复

您尚未登录,请登录后再回复。点此登录或注册