-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathice 2 prog
112 lines (95 loc) · 3.64 KB
/
ice 2 prog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace TaskManagementApp
{
public partial class MainForm : Form
{
// Create a list to store tasks
private List<Task> tasks = new List<Task>();
public MainForm()
{
InitializeComponent();
InitializeDataGridView();
}
private void InitializeDataGridView()
{
// Set up DataGridView columns
dataGridView.Columns.Add("TaskTitle", "Task Title");
dataGridView.Columns.Add("DueDate", "Due Date");
dataGridView.Columns.Add("Status", "Status");
dataGridView.Columns["DueDate"].DefaultCellStyle.Format = "yyyy-MM-dd";
// Set DataGridView data source to the tasks list
dataGridView.DataSource = tasks;
// Hide unnecessary columns (TaskId)
dataGridView.Columns["TaskId"].Visible = false;
// Enable DataGridView selection
dataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
}
// Define a Task class to represent tasks
private class Task
{
public int TaskId { get; set; }
public string TaskTitle { get; set; }
public DateTime DueDate { get; set; }
public bool Status { get; set; } // True for completed, false for pending
}
// Additional methods
private void FilterTasksByStatus(bool completed)
{
var filteredTasks = tasks.Where(t => t.Status == completed).ToList();
dataGridView.DataSource = filteredTasks;
}
private void SortTasksByDueDate()
{
tasks = tasks.OrderBy(t => t.DueDate).ToList();
dataGridView.DataSource = tasks;
}
private void AddTask(string title, DateTime dueDate, bool status)
{
var task = new Task
{
TaskId = tasks.Count + 1,
TaskTitle = title,
DueDate = dueDate,
Status = status
};
tasks.Add(task);
dataGridView.DataSource = tasks;
}
private void FilterTasksByKeyword(string keyword)
{
var filteredTasks = tasks.Where(t => t.TaskTitle.Contains(keyword)).ToList();
dataGridView.DataSource = filteredTasks;
}
private void FilterTasksByDateRange(DateTime startDate, DateTime endDate)
{
var filteredTasks = tasks.Where(t => t.DueDate >= startDate && t.DueDate <= endDate).ToList();
dataGridView.DataSource = filteredTasks;
}
private void DisplayTaskCounts()
{
int pendingCount = tasks.Count(t => !t.Status);
int completedCount = tasks.Count(t => t.Status);
MessageBox.Show($"Pending Tasks: {pendingCount}\nCompleted Tasks: {completedCount}");
}
private void GroupTasksByStatus()
{
var groupedTasks = tasks.GroupBy(t => t.Status).ToDictionary(g => g.Key, g => g.ToList());
// Now you can work with the groupedTasks dictionary to display or process the grouped data.
}
private void InitializeDataGridView()
{
// ... (existing code)
// Hide all columns initially
foreach (DataGridViewColumn column in dataGridView.Columns)
{
column.Visible = false;
}
// Show only TaskTitle and Status columns
dataGridView.Columns["TaskTitle"].Visible = true;
dataGridView.Columns["Status"].Visible = true;
}
}
}