C# 使用ListBox存储多个数据段
我正在用windows窗体为我的一个大学作业制作一个待办事项列表程序。我已经学会了如何在列表框中添加和删除项目,因此我了解它的基本原理,但我想做的是能够在列表框中添加一个任务,如:“为晚餐获取食物”,然后将其添加到列表框中,但我想能够单击“为晚餐获取食物”,然后添加另一个列表框以添加诸如“面包卷”和“培根”之类的内容在将链接到上一个项目的下一个视图中。 真的很像树视图结构,但我希望它更面向菜单。 我该怎么做,我应该查什么C# 使用ListBox存储多个数据段,c#,winforms,listbox,C#,Winforms,Listbox,我正在用windows窗体为我的一个大学作业制作一个待办事项列表程序。我已经学会了如何在列表框中添加和删除项目,因此我了解它的基本原理,但我想做的是能够在列表框中添加一个任务,如:“为晚餐获取食物”,然后将其添加到列表框中,但我想能够单击“为晚餐获取食物”,然后添加另一个列表框以添加诸如“面包卷”和“培根”之类的内容在将链接到上一个项目的下一个视图中。 真的很像树视图结构,但我希望它更面向菜单。 我该怎么做,我应该查什么 旁注:请随意更正我的标题,如果它不能很好地描述我正在做的事情,我认为它比“
旁注:请随意更正我的标题,如果它不能很好地描述我正在做的事情,我认为它比“使用列表框”更好。列表框项目不必是字符串,它们可以是任何可以通过ToString表示为字符串的对象 例如:
public class ToDoItem
{
public ToDoItem(string w)
{
What = s;
}
public override string ToString()
{
return What;
}
public string What
{
get;
set;
}
}
myListBox.Items.Add(new ToDoItem("Feed Budgie"));
ToDoItem item = (ToDoItem)myListBox.Items[0];
进一步说,您可以:
public class ToDoItem
{
...
public ToDoItem[] Children
{
get;
set;
}
...
}
非常粗糙,但我希望你明白我的意思。Description
ToString()
方法private void myListBox_Click(object sender, EventArgs e)
{
if (myListBox.SelectedItem == null)
return;
// get selected TodoList Entrie
MyTodoListEntry selectedEntry = (MyTodoListEntry)myListBox.SelectedItem;
// do something, for example populate another ListBox with selectedEntry
myInformationsListBox.Items.Clear();
myInformationsListBox.Items.AddRange(selectedEntry.Information.ToArray());
}
截图
很乐意帮忙!祝您有个美好的一天!
MyTodoListEntry entry = new MyTodoListEntry();
entry.Title = "get food for dinner";
entry.Information.Add("bread rolls");
entry.Information.Add("bacond");
entry.DueDate = new DateTime(2012,12,12);
myListBox.Items.Add(entry);
private void myListBox_Click(object sender, EventArgs e)
{
if (myListBox.SelectedItem == null)
return;
// get selected TodoList Entrie
MyTodoListEntry selectedEntry = (MyTodoListEntry)myListBox.SelectedItem;
// do something, for example populate another ListBox with selectedEntry
myInformationsListBox.Items.Clear();
myInformationsListBox.Items.AddRange(selectedEntry.Information.ToArray());
}