我有一个简单的应用程序来存储地址细节并编辑它们。我已经离开VB几年了,需要在紧迫的最后期限之前重新认识我的知识。我有一个通用的小组负责显示一个表单,用户可以添加联系人详细信息(通过按下按钮添加)并编辑它们(通过按下按钮编辑)。这个子文件存储在一个Contact类中。它应该工作的方式是,所有联系人都有一个列表,当新联系人添加时,会显示一个新条目。如果用户希望编辑定条目他或她选择它并按下编辑按钮无效的投射异常
Public Sub Display()
Dim C As New Contact
C.Cont = InputBox("Enter a title for this contact.")
C.Fname = frmAddCont.txtFName.Text
C.Surname = frmAddCont.txtSName.Text
C.Address = frmAddCont.txtAddress.Text
frmStart.lstContact.Items.Add(C.Cont.ToString)
End Sub
我通过
Dim C As New Contact
C.Display()
把它从负责添加新联系人的形式和它的作品就好了。但是,当我尝试使用编辑按钮做类似的事情时,我得到错误 - “无法投射'System.String'类型的对象来键入'AddressBook.Contact'。”
Dim C As Contact
If lstContact.SelectedItem IsNot Nothing Then
C = lstContact.SelectedItem()
C.Display()
End If
我认为这可能是简单的事情,但我无法修复它,并给予很短的时间我决定在这里寻求帮助。
我已经用其他成员的建议更新了我的课,这里是最终版本(但有一些问题)。当我在编辑按钮单击只显示输入框联系人的标题,实际上增加了在与名字前面的数据列表中的其他项,第二个名称等
Public Class Contact
Public Contact As String
Public Fname As String
Public Surname As String
Public Address As String
Private myCont As String
Public Property Cont()
Get
Return myCont
End Get
Set(ByVal value)
myCont = Value
End Set
End Property
Public Overrides Function ToString() As String
Return Me.Cont
End Function
Sub NewContact()
FName = frmAddCont.txtFName.ToString
frmStart.lstContact.Items.Add(FName)
frmAddCont.Hide()
End Sub
Public Sub Display()
Dim C As New Contact
C.Cont = InputBox("Enter a title for this contact.")
C.Fname = frmAddCont.txtFName.Text
C.Surname = frmAddCont.txtSName.Text
C.Address = frmAddCont.txtAddress.Text
'frmStart.lstContact.Items.Add(C.Cont.ToString)
frmStart.lstContact.Items.Add(C)
End Sub
End Class
+1你得到它,而我还在打字:) – egrunin 2010-04-27 21:03:22