C#任务程序无法在Windows窗体应用程序中添加新项目

C#任务程序无法在Windows窗体应用程序中添加新项目,c#,winforms,C#,Winforms,我在网上学习一门垃圾C#课程,它希望我创建一个类似于家务清单的程序,用户可以使用它添加、删除或清除清单上的项目 我遇到的问题是,当我将文本添加到文本框中,然后单击一个按钮(比如add front)时,什么也没有发生 以下是一些代码片段和图片: LinkedList todoList=新建LinkedList(); 公共void显示列表() { ItemTextBox.Text=”“;//这是最上面的框。 ToDoListBox.Text=“”; foreach(todoList中的字符串MyS

我在网上学习一门垃圾C#课程,它希望我创建一个类似于家务清单的程序,用户可以使用它添加、删除或清除清单上的项目

我遇到的问题是,当我将文本添加到文本框中,然后单击一个按钮(比如add front)时,什么也没有发生

以下是一些代码片段和图片:

LinkedList todoList=新建LinkedList();
公共void显示列表()
{
ItemTextBox.Text=”“;//这是最上面的框。
ToDoListBox.Text=“”;
foreach(todoList中的字符串MyString)
{
Text+=MyString;
}
}
私有void AddFrontButton_单击(对象发送者,事件参数e)
{
System.Collections.IEnumerator迭代器=todoList.GetEnumerator();
//如果用户决定将任务添加到列表的前面。
如果(ItemTextBox.Text!=“”)
{
todoList.AddFirst(ItemTextBox.Text);
显示列表();
}
}
以下是本课程的一些说明:

在类中添加以下代码:

声明一个包含字符串数据的LinkedList变量,名为todoList。 创建一个名为DisplayList()的方法,该方法执行以下操作: 清除ItemTextBox和ToDoListBox的内容。 使用foreach循环遍历todoList中的每个字符串。 在循环内部,将当前字符串从todoList添加到todoList框 为AddFrontButton创建事件处理程序函数并添加以下逻辑:

如果ItemTextBox中有任何文本,请将文本添加到todoList的前面 调用DisplayList()函数刷新屏幕上的ToDoListBox


当然,您的代码不会执行您想要执行的操作。它有很多问题。我还没有对其进行测试,但代码大致应该是这样的:

LinkedList<string> todoList = new LinkedList<string>();


public void DisplayList()
{
    ItemTextBox.Text = ""; //this is the very top box.
    ToDoListBox.Items.Clear();

    foreach(string MyString in todoList)
    {
        ToDoListBox.Items.Add(MyString);
    }
}

private void AddFrontButton_Click(object sender, EventArgs e)
{
    System.Collections.IEnumerator iterator = todoList.GetEnumerator();

    //If the user desides to add the task to the front of the list.
    if(!String.IsNullOrWhiteSpace(ItemTextBox.Text))
    {
        todoList.AddFirst(ItemTextBox.Text);
        DisplayList();
    }
}
LinkedList todoList=新建LinkedList();
公共void显示列表()
{
ItemTextBox.Text=”“;//这是最上面的框。
ToDoListBox.Items.Clear();
foreach(todoList中的字符串MyString)
{
ToDoListBox.Items.Add(MyString);
}
}
私有void AddFrontButton_单击(对象发送者,事件参数e)
{
System.Collections.IEnumerator迭代器=todoList.GetEnumerator();
//如果用户决定将任务添加到列表的前面。
如果(!String.IsNullOrWhiteSpace(ItemTextBox.Text))
{
todoList.AddFirst(ItemTextBox.Text);
显示列表();
}
}

你能发布你的方法DisplayList()吗;我认为您遇到的问题与if语句以及对该方法的调用有关。@Matthew kaulfer这是
LinkedList
声明之后的第一个方法。让OP知道他的
ToDoListBox
似乎是
ListBox
控件,而不是
TextBox
。这应该是他们坚持将
LinkedList
作为首选工具的原因。@Matthew Kaulfers我发布了DisplayList()方法,我将其发布在代码顶部附近:)@Jimi这是本课程的更多说明:谢谢帮助!但是语句ToDoListBox.Items.Add(newlistboxitem(MyString));但是,ToDoListBox.Items.Add(MyString)语句不起作用;确实有效。请问您为什么在代码中添加了新的ListBoxItem?如前所述,我没有测试代码,而是从内存中编写的。很久没有开发WinForms应用程序了。在大多数其他框架(如WPF、UWA等)中,ListBox.Items是ListBoxItem对象或类似对象的集合。在本例中,它只是接收一个字符串,因此应该可以。
LinkedList<string> todoList = new LinkedList<string>();


public void DisplayList()
{
    ItemTextBox.Text = ""; //this is the very top box.
    ToDoListBox.Items.Clear();

    foreach(string MyString in todoList)
    {
        ToDoListBox.Items.Add(MyString);
    }
}

private void AddFrontButton_Click(object sender, EventArgs e)
{
    System.Collections.IEnumerator iterator = todoList.GetEnumerator();

    //If the user desides to add the task to the front of the list.
    if(!String.IsNullOrWhiteSpace(ItemTextBox.Text))
    {
        todoList.AddFirst(ItemTextBox.Text);
        DisplayList();
    }
}