(VB.NET)为什么';我的登录系统不工作吗?

(VB.NET)为什么';我的登录系统不工作吗?,vb.net,login,passwords,Vb.net,Login,Passwords,嗯。我有一个代码,它应该可以工作,它确实关闭了登录表单,但没有打开菜单表单 If username.Text = "lolman8776" Then If password.Text = "#########PASSWORD HIDDEN FROM THE INTERNET#########" Then Form2.Show() Me.Close()

嗯。我有一个代码,它应该可以工作,它确实关闭了登录表单,但没有打开菜单表单

            If username.Text = "lolman8776" Then
                If password.Text = "#########PASSWORD HIDDEN FROM THE INTERNET#########" Then
                    Form2.Show()
                    Me.Close()
                End If
                End If
我不明白的是,这段代码没有语法错误,应该可以工作! 它显示form2,然后关闭自己,但form2从未显示。 我正在运行VB.NET2013社区,因为它是免费下载的。(我也注册了,所以不是审判)。 我已尝试从Form1中删除Me.Close(),并将一行代码放入Form2中,以关闭Form1:

    Form1.Close()

但是,还是没什么。我不知道为什么任何方法都不起作用。我到处寻找一辆雨篷车,但没有成功。有人有解决方案吗?

根据您的评论:“我甚至没有尝试隐藏/关闭form1,但仅仅显示Form2会导致应用程序崩溃。”

我相信你的问题在于没有实例化你的表单。Show()方法不是静态的,不能直接在Form2上调用。它必须在窗体的实例上调用。例如:

Dim myForm作为新Form2()
myForm.Show()


有关更多信息,请参阅。

如果您必须编写
。#################
,您肯定做错了什么。永远不要养成使用普通密码的习惯!您正在实例化表单吗?例如:
Dim myForm As New FormName()myForm.Show()
Form1最有可能是项目-->属性中的“启动对象”?当启动表单关闭时,整个应用程序将关闭(这会立即关闭表单2)。将
Me.Close()
更改为
Me.Hide()
,看看这是否有区别。我确实创建了一个新表单,并将其设置为startup form以使其首先显示。因为最初,我没有先登录系统。我要试着躲起来,因为听起来好像可以。运气不好。显然,隐藏启动表单也会导致整个应用程序关闭。
Form2.Show()
将显示Form2的默认实例,这是完全合法的,尽管当一些人不理解默认实例与引用使用
new
创建的实例之间的区别时,会感到困惑。有关更多详细信息,请参阅:“默认实例是运行时提供的类的实例,不需要使用Dim和New语句声明和实例化。”因此
Form2.Show()
相当于
My.Forms.Form2.Show()
@Idle\u非常有趣!此功能在C中似乎不存在。没错,它们在C中不可用。从历史上看,最初的经典VB6有默认实例,它们没有包含在VB.Net 1.0和1.1中,因为微软想让VB.Net在正确的OOP方面与C#齐头并进。然而,VB程序员在向.Net过渡的过程中发出了强烈的抗议,他们被带回到了VB.NET2.0中,从那以后他们就一直呆在那里。