Я пишу простое приложение - адресную книгу. Пользователь вводит новые адреса, и они добавляются как запись в список, видимый в основной форме (frmStart). Я использую одну форму для добавления и редактирования (AddContForm). Кнопка добавления на frmStart отлично работает, однако я испытываю некоторые проблемы с кнопкой редактирования, когда я нажимаю ее и вводим новые данные, которые они добавляются в качестве новой записи, однако предыдущая запись все еще существует. Логика обрабатывается классом Contact.vb. Пожалуйста, дайте мне знать, как решить эту проблему. Вот код:VB.NET обработка данных между различными формами
Contact.vb
Public Class Contact
Public Contact As String
Public Title 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
Public Sub Display()
Dim C As New Contact
C.Cont = frmAddCont.txtTitle.Text
C.Fname = frmAddCont.txtFName.Text
C.Surname = frmAddCont.txtSName.Text
C.Address = frmAddCont.txtAddress.Text
frmStart.lstContact.Items.Add(C)
End Sub
End Class
Здесь frmStart.vb
Public Class frmStart
Public Button As String
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click
Button = ""
Button = "Add"
frmAddCont.ShowDialog()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click
Button = ""
Button = "Del"
Dim DelCont As Contact
DelCont = Me.lstContact.SelectedItem()
lstContact.Items.Remove(DelCont)
End Sub
Private Sub lstContact_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstContact.SelectedIndexChanged
End Sub
Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
Button = ""
Button = "Edit"
Dim C As Contact
If lstContact.SelectedItem IsNot Nothing Then
C = DirectCast(lstContact.SelectedItem, Contact)
frmAddCont.ShowDialog()
End If
End Sub
End Class
Здесь AddContFrm.vb
Public Class frmAddCont
Public Class ControlObject
Dim Title As String
Dim FName As String
Dim SName As String
Dim Address As String
Dim TelephoneNumber As Integer
Dim emailAddress As String
Dim Website As String
Dim Photograph As String
End Class
Private Sub btnConfirmAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConfirmAdd.Click
Dim B As String
B = frmStart.Button
Dim C As New Contact
C.Display()
Me.Hide()
If B = "Edit" Then
C = DirectCast(frmStart.lstContact.SelectedItem, Contact)
frmStart.lstContact.SelectedItems.Remove(C)
End If
End Sub
Private Sub frmAddCont_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
End Class
Update:
Мне действительно все равно, являются ли данные в AddForm старыми данными или новыми данными. Я не понимаю, как этот код поможет мне достичь моей цели. Я думаю, что проблема в том, что когда я нажимаю кнопку «Изменить предыдущую запись в списке», я не удаляю (что, по-моему, я указал в моем вопросе) - я попытался удалить ее (используя условие if и проверяя, какая кнопка была нажата) кажется, что по какой-то причине он не работает должным образом. Я не понимаю, как ваш код мог бы помочь мне, пожалуйста, если возможно, объясните это лучше.