VB.NET语言 利用 ListView 实现任务列表管理

VB.NETamuwap 发布于 3 天前 1 次阅读


VB.NET【1】中使用ListView实现任务列表管理

在软件开发中,任务列表管理是一个常见的需求。它可以帮助开发者、项目经理或任何需要跟踪任务进度的人有效地管理任务。在VB.NET中,ListView控件【2】是一个强大的工具,可以用来创建动态和交互式的用户界面【3】。本文将围绕VB.NET语言,利用ListView控件实现一个简单的任务列表管理程序。

ListView控件是Windows Forms【4】中的一种常用控件,它能够显示项目列表,并且支持多种视图模式,如列表视图、图标视图和详细信息视图。通过ListView控件,我们可以轻松地实现一个任务列表管理界面,用户可以添加、删除、编辑和查看任务。

环境准备

在开始编写代码之前,我们需要准备以下环境:

1. Visual Studio【5】 2019或更高版本
2. .NET Framework【6】 4.8或更高版本

创建项目

1. 打开Visual Studio,创建一个新的Windows Forms App (.NET Framework)项目。
2. 在解决方案资源管理器【7】中,找到Form1,双击打开它。

设计界面

1. 在Form1上,从工具箱中拖放一个ListView控件。
2. 设置ListView的属性【8】
- View:选择“Details”视图。
- MultiSelect:设置为False。
- FullRowSelect:设置为True。
3. 在Details视图下,添加以下列:
- Task【9】 Name:文本框(TextBox)控件。
- Due Date:日期时间控件(DateTimePicker【10】)。
- Status:下拉列表框(ComboBox【11】)控件。

编写代码

以下是实现任务列表管理的主要代码:

vb.net
Public Class MainForm
Private tasks As New List(Of Task)

Private Sub MainForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
InitializeListView()
End Sub

Private Sub InitializeListView()
' 添加列
lvTasks.Columns.Add("Task Name", "Task Name", 200)
lvTasks.Columns.Add("Due Date", "Due Date", 100)
lvTasks.Columns.Add("Status", "Status", 100)

' 添加初始任务
AddTask("Implement feature X", New DateTime(2023, 4, 15), "In Progress")
AddTask("Fix bug Y", New DateTime(2023, 4, 20), "Pending")
End Sub

Private Sub AddTask(name As String, dueDate As DateTime, status As String)
Dim task As New Task With {
.Name = name,
.DueDate = dueDate,
.Status = status
}
tasks.Add(task)
lvTasks.Items.Add(task.Name).SubItems.Add(task.DueDate.ToString("yyyy-MM-dd"))
lvTasks.Items.Add(task.Name).SubItems.Add(task.Status)
End Sub

Private Sub btnAddTask_Click(sender As Object, e As EventArgs) Handles btnAddTask.Click
Dim name As String = txtTaskName.Text
Dim dueDate As DateTime = dtpDueDate.Value
Dim status As String = cmbStatus.SelectedItem.ToString()

AddTask(name, dueDate, status)
ClearForm()
End Sub

Private Sub ClearForm()
txtTaskName.Clear()
dtpDueDate.Value = DateTime.Now
cmbStatus.SelectedIndex = -1
End Sub

Private Sub lvTasks_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lvTasks.SelectedIndexChanged
If lvTasks.SelectedItems.Count > 0 Then
Dim selectedTask As Task = tasks.Find(Function(t) t.Name = lvTasks.SelectedItems(0).Text)
txtTaskName.Text = selectedTask.Name
dtpDueDate.Value = selectedTask.DueDate
cmbStatus.SelectedItem = selectedTask.Status
End If
End Sub

Private Sub btnEditTask_Click(sender As Object, e As EventArgs) Handles btnEditTask.Click
If lvTasks.SelectedItems.Count > 0 Then
Dim selectedTask As Task = tasks.Find(Function(t) t.Name = lvTasks.SelectedItems(0).Text)
selectedTask.Name = txtTaskName.Text
selectedTask.DueDate = dtpDueDate.Value
selectedTask.Status = cmbStatus.SelectedItem.ToString()

lvTasks.SelectedItems(0).SubItems(1).Text = selectedTask.DueDate.ToString("yyyy-MM-dd")
lvTasks.SelectedItems(0).SubItems(2).Text = selectedTask.Status
ClearForm()
End If
End Sub

Private Sub btnDeleteTask_Click(sender As Object, e As EventArgs) Handles btnDeleteTask.Click
If lvTasks.SelectedItems.Count > 0 Then
Dim selectedTask As Task = tasks.Find(Function(t) t.Name = lvTasks.SelectedItems(0).Text)
tasks.Remove(selectedTask)
lvTasks.SelectedItems(0).Remove()
ClearForm()
End If
End Sub
End Class

Public Class Task
Public Property Name As String
Public Property DueDate As DateTime
Public Property Status As String
End Class

代码解析

1. `MainForm` 类:包含任务列表管理的主要逻辑。
2. `InitializeListView` 方法【12】:初始化ListView控件,添加列,并添加初始任务。
3. `AddTask` 方法:添加新任务到任务列表和ListView控件。
4. `btnAddTask_Click` 方法:处理添加任务按钮的点击事件。
5. `ClearForm` 方法:清空表单控件。
6. `lvTasks_SelectedIndexChanged` 方法:当用户选择ListView中的任务时,更新表单控件。
7. `btnEditTask_Click` 方法:处理编辑任务按钮的点击事件。
8. `btnDeleteTask_Click` 方法:处理删除任务按钮的点击事件。
9. `Task` 类:表示任务的数据模型【13】

总结

通过使用VB.NET和ListView控件,我们可以轻松地实现一个任务列表管理程序。这个程序可以帮助用户添加、编辑、删除和查看任务。在实际应用中,可以根据需求扩展功能,如添加任务优先级、任务分配、任务进度跟踪等。希望本文能帮助你更好地理解如何在VB.NET中使用ListView控件实现任务列表管理。