2014-02-19 131 views
-1

当我去调试我的项目在Visual Basic中,我得到它说的错误消息:VB调试错误

An unhandled exception of type 'System.InvalidOperationException' occurred in Name Database.exe

Additional information: An error occurred creating the form. See Exception.InnerException for details. The error is: Object reference not set to an instance of an object.

这里是我的代码:

Public Class Form1 
Dim member As String = TextBoxName.Text 
Private Sub ButtonAdd_Click(sender As Object, e As EventArgs) Handles ButtonAdd.Click 
    ListBoxName.Items.Add(member & " " & TextBoxDate.Text) 
    TextBoxDate.Text = "" 
    TextBoxName.Text = "" 
End Sub 

Private Sub ButtonRemove_Click(sender As Object, e As EventArgs) Handles ButtonRemove.Click 
    ListBoxName.Items.Remove(ListBoxName.SelectedItem) 
End Sub 

Private Sub ButtonCheck_Click(sender As Object, e As EventArgs) Handles ButtonCheck.Click 
    If ListBoxName.Items.Contains(member & " " & Date.Today.ToString) Then 
     MsgBox(ListBoxName.Items.Contains(Date.Today.ToString) & "membership needs to be renewed") 
    End If 
End Sub 
End Class 
+0

读取内部异常堆栈跟踪。 – SLaks

+0

这可能是错误:'Dim member As String = TextBoxName.Text'表单尚未创建(不是任何控件),但是您引用了其中一个控件(这不是任何控件)。声明它,但不要初始化('member = ...'),直到FormLoad – Plutonix

+0

什么是“内部异常堆栈跟踪”? – user3267723

回答

1
Dim member As String = TextBoxName.Text 

这不能工作,TextBoxName变量在执行此分配时尚未初始化。您必须使用如下构造函数:

Dim member As String 

Public Sub New() 
    InitializeComponent() 
    member = TextBoxName.Text 
End Sub 

它是设置TextBoxName控件引用的InitializeComponent()。请注意,它仍然不太可能工作,Text属性不会被用户设置。所以会员将包含一个空字符串。除非你给设计师一个价值。这表明这更可能是正确的:

Dim member As String = String.Empty