2010-04-28 3 views
1

나는 퍼즐에 관한 간단한 질문을 가지고 있습니다. 나는 잠시 동안 떨어져 있었으므로 VB에 약간의 refreashment가 필요하다. 새로운 연락처를 추가하는 양식이 있습니다. 해당 버튼을 누르면 새 연락처가 추가되고 양식의 목록에 항목으로 나타납니다. 이제 기존 항목을 편집하는 편집 버튼을 추가하려고합니다. 사용자는 목록에서 해당 항목을 선택하고 편집 버튼을 누르면 적절한 양식 (AddContFrm)이 표시됩니다. 지금은 동일한 제목의 항목을 추가하기 만하면됩니다. 논리는 Contact.vb라는 클래스에서 처리됩니다. 여기에 제 코드가 있습니다.VB.NET 편집 기존 양식으로

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 
    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.Cont = frmAddCont.txtTitle.Text 
     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 

AddContFrm

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 C As New Contact 
     C.Display() 
     Me.Hide() 

    End Sub 

    Private Sub frmAddCont_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 

    End Sub 
End Class 

및 frmStart.vb

Public Class frmStart 

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click 
     frmAddCont.Show() 
    End Sub 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDel.Click 

     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 
     Dim C As Contact 
     If lstContact.SelectedItem IsNot Nothing Then 
      C = DirectCast(lstContact.SelectedItem, Contact) 
      C.Display() 
     End If 
    End Sub 
End Class 
+0

이전 질문의 조언을 사용했다고 말할 수 있습니다. 그것이 다행했기 때문에. 그래도 답을 표시하는 것을 잊어 버렸습니다. 먼저 처리해주세요. –

+0

답변을 어떻게 표시합니까? – niuchu

답변

1

당신은 정말 질문을 추가하지 않은하지만 당신의 코드를보고는 좀 이상해.
추가를 클릭하면 frmAddCont가 표시되고 해당 양식의 확인 버튼에 데이터가 저장되지만 편집을 클릭하면 양식이 표시되지 않고 동일한 데이터 만 다시 추가됩니다. 편집 버튼 처리기에 frmAddCont.Show()이 누락 된 것 같습니다.

하지만 GUI로 데이터를 너무 많이 혼합하고 있습니다. Contact 클래스는 frmAddCont에 대해 전혀 모르는 상태 여야합니다. 기본 폼의 추가 및 수정 버튼에는 frmAddCont가 필요에 따라 표시되어야합니다 (단, Show이 아닌 모달이되도록 ShowDialog). 편집 모드 인 경우 보내면됩니다. ContactfrmAddCont으로 편집 한 다음 사용자가 확인을 누르면 수정하고 싶습니다. 필요에 따라 Contact을 작성하고 추가하는 경우 기본 양식에서 새 Contact을 불러올 수있는 방법이 있습니다.
GUI가 Contact 클래스에 대해 잘 알고 있지만 Contact 클래스는 이제 폼에 대해 알아야합니다.

관련 문제