我正在为编程课程编写VB /简介,我很难过。
基本上,我正在编写的应用程序是基于表单的应用程序,其中列表框中填充了逗号分隔文本文件的结果。目标是能够对列表框进行排序,优化列表框的视图/结果,编辑列表框中的项目,查看列表框中所选项目的详细信息......以及其他任务。在提到的项目中,最后两个是我被困住的地方:编辑/查看所选项目。
分配指出选择“查看”或“更新”所选列表框项要求打开一个新表单 - 填充了要编辑的项目的每个方面的相应文本框 - 查看/更新。
图表:
这就是我难倒的地方:将所有五个字段的数据放入每个相应的文本框基于选定的列表框项 ...然后能够保存对该字段的更改.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
请原谅我的问题的新手,伙伴堆叠花,因为我试图希望填写我认为教科书中的差距。 (并提前多多感谢!)
答案 0 :(得分: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字段,允许您在用户单击“保存”时将结果写回记录。它应该工作。
另一种方法(在数据绑定的上下文中更多)是将文本框的文本属性直接绑定到您传递的书籍对象的标题,作者等属性。
tbTitle.DataBindings.Clear()
tbTitle.DataBindings.Add(New Binding("Text", record, "Title"))
这样,您在文本框中所做的更改将直接传输到您传递的对象。 这一切都取决于最终结果应该是什么,所以把它们作为提示。