2014-02-23 1 views
2

프로그래밍 과정의 VB/intro에 대한 과제를 수행하고 있는데 문제가 있습니다.목록 상자 선택에서 여러 텍스트 상자 채우기

기본적으로 필자가 작성한 응용 프로그램은 목록 상자에 쉼표로 구분 된 텍스트 파일의 결과가 채워지는 양식 기반 응용 프로그램입니다. 목표는 목록 상자를 정렬하고, 목록 상자의보기/결과를 수정하고, 목록 상자에서 항목을 편집하고, 목록 상자에서 선택한 항목의 세부 정보를 볼 수 있도록하는 것입니다. 언급 된 항목 중 마지막 두 항목은 선택한 항목 편집 /보기입니다.

선택한 목록 상자 항목을 "보거나"선택하면 편집 할 항목의 각 측면에 적합한 텍스트 상자가 채워진 새로운 양식이 필요합니다.보기/업데이트를 위해 열어야합니다 .

다이어그램 :의

enter image description here

어디있어 난처한 상황에 빠진 : 다음 선택한 목록 상자 항목의 기반으로 각각의 텍스트 상자 에 모두 5 개 개의 필드에 대한 데이터를 가져 오는 ... 그리고 할 수있는 .txt 데이터 소스에서 해당 행의 필드에 대한 변경 사항을 저장하십시오. 여기

내가 현재 내 목록 상자의 Form_Load에 채운 방법은 다음과 같습니다 내가 잘하면 내가 어떤 느낌을 채우기 위해 시도로

Private Sub frmInventory_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
     Dim books() = IO.File.ReadAllLines("Books.txt") 
     Dim n As Integer = books.Count - 1 
     ReDim book(n) 
     Dim data() As String 
     For i As Integer = 0 To n 
      data = books(i).Split(","c) 
      book(i).title = data(0) 
      book(i).author = data(1) 
      book(i).category = data(2) 
      book(i).price = data(3) 
      book(i).stock = data(4) 
     Next 
     Dim booksAllQuery = From col In book 
         Where col.category = "F" Or col.category = "N" 
         Select col.title 
     lstBooks.DataSource = booksAllQuery.ToList 
    End Sub 

는 내 질문에, 동료 stackoverflowers의 newbieness 저를 용서해의 차이입니다 교과서. (그리고 많은 미리 감사드립니다!)

답변

0

데이터베이스 (또는 책 - 개체 배열)에있는 책의 모든 데이터가있는 것처럼 보입니다. 책을 편집하려면 예를 들어 편집기 양식의 .ShowDialog 메소드를 오버로드 할 수 있습니다.

Public Class frmEditor 
    Private WorkingRecord As Book 
    Public Overloads Function ShowDialog(owner As IWin32Window, ByRef record As Book) As DialogResult 
     WorkingRecord = record 
     tbTitle.Text = record.Title 
     tbAuthor.Text = record.Author 
     ... 
     Return MyBase.ShowDialog(owner) 
    End Function 
End Class 

이 함수를 편집 할 레코드와 함께 호출하면 레코드의 값이 채워집니다. 사용자가 저장을 클릭 할 때 결과를 다시 레코드에 기록 할 수 있도록 WorkingRecord 필드를 추가했습니다. 그것은 작동해야합니다.

다른 방법 (데이터 바인딩과 관련하여)은 텍스트 상자의 텍스트 속성을 전달한 책 객체의 제목, 작성자 등과 같은 속성에 직접 바인딩하는 것입니다.

그런 식으로 텍스트 상자에서 변경 한 내용은 전달한 개체로 직접 전송됩니다. 최종 결과가 무엇인지에 따라 달라 지므로 힌트로 사용하십시오.