【问题标题】:adding, deleting, sorting, searching, and counting inside a listbox在列表框中添加、删除、排序、搜索和计数
【发布时间】:2015-11-12 07:40:16
【问题描述】:

所以在这个列表框中我有这个顺序的名字

阿比格尔
汉娜
泰勒
比尔
大野鸭

列表框的名字叫做namesListBox

对用户需要输入的每个输入使用文本框和不同的按钮:

  • 添加名称

  • 删除名称

  • 然后搜索一个名称,直到当时只有该名称显示在列表框中。

完成后,使用按钮计算列表中有多少项目。使用不同的按钮进行排序。

这是 C#。我似乎无法让 nameslistbox.sort 或 .count 工作,所以任何帮助都会很棒,我不知道如何进行添加、删除和搜索。

private void showListButton_Click(object sender, EventArgs e)
{
    nameListBox.Visible = true;
}

private void countListButton_Click(object sender, EventArgs e)
{

}

private void addButton_Click(object sender, EventArgs e)
{
    List<string> nameListBox = new List<string>();
    nameListBox.Add(addTextBox.Text);
}

private void sortListButton_Click(object sender, EventArgs e)
{

}

private void searchButton_Click(object sender, EventArgs e)
{

}

private void deleteButton_Click(object sender, EventArgs e)
{

}

【问题讨论】:

  • 嗯,这主要是按钮的Click事件。我们需要的是您尝试解决问题的代码。请注意,SO 用户不会为您编写代码,我们在这里帮助解决现有代码导致错误或问题或无法按预期工作的问题。

标签: c# sorting search listbox add


【解决方案1】:

正如 icedragon 在他的评论中所说,每次单击添加按钮时都会创建一个新列表,因此您需要将其设为全局变量。

您可能想了解更多关于 Linq 的信息来处理您的收藏。 http://www.codeproject.com/Articles/19154/Understanding-LINQ-C

private List<string> namesList;

public class YourClass()
{
    namesList = new List<string>();
}

private void addButton_Click(object sender, EventArgs e)
{
     nameListBox.Add(addTextBox.Text);
}

private void sortListButton_Click(object sender, EventArgs e)
{
     nameListBox.Sort();
}

private void searchButton_Click(object sender, EventArgs e)
{
    string searchedString = nameListBox.FirstOrDefault(x => x.Contains(searchTextbox.Text);
}

private void deleteButton_Click(object sender, EventArgs e)
{
     nameListBox.Remove(removeTextbox.Text);
}

【讨论】:

    【解决方案2】:

    您正在单击事件方法中创建 List 实例。这意味着,当您单击添加按钮并且列表就在您的单击方法中时,您每次都在创建一个新列表。您应该使 List 全局化:

    private List<string> namesListBox; // this should be outside of the method
    

    并在构造函数中初始化:

    namesListBox = new List<string>();
    

    现在你可以像这样添加元素:

    private void addButton_Click(object sender, EventArgs e)
    {
        nameListBox.Add(addTextBox.Text);
    } 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2010-11-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-26
      相关资源
      最近更新 更多