使用大写和小写搜索列表框中的项目

时间:2014-02-11 15:37:22

标签: c# search visual-studio-2008 textbox listbox

美好的一天,我制作了一个列表框,其中包含我可以在文本框中搜索它并将其传输到另一个列表框中的项目列表。我制作了这段代码并且有效。

private void textBox1_TextChanged(object sender, EventArgs e)
{
    listBox1.SelectedItems.Clear();

    for (i = 0; i < listBox1.Items.Count; i++)
    {
        if (listBox1.Items[i].ToString().Contains(textBox1.Text))
        {
            listBox1.SetSelected(i, true);
        }
    }
}

private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
{
    System.Text.StringBuilder sb = new System.Text.StringBuilder();
    foreach (object item in listBox1.Items)
    {
        sb.Append(item.ToString());
        sb.Append(" ");
    }
    possibleresult rslt = new possibleresult();
    listBox2.Items.Clear();
    foreach (int i in listBox1.SelectedIndices)
    {
        listBox2.Visible = true;
        listBox2.Items.Add(listBox1.Items[i].ToString());
    }      
}

现在我想搜索一个可以读小写字母或大字母的项目。 我使用UpperCase和LowerCase研究了一些代码,但说实话,我不知道该怎么做 这个问题可以帮助我吗?

3 个答案:

答案 0 :(得分:1)

解决方案:您可以将这两个值转换为大写或小写,然后执行比较。

试试这个:

listBox1.Items[i].ToString().ToLower().Contains(textBox1.Text.ToLower())

OR

listBox1.Items[i].ToString().ToUpper().Contains(textBox1.Text.ToUpper())

答案 1 :(得分:0)

试试这个:

 private void textBox1_TextChanged(object sender, EventArgs e)
        {

            listBox1.SelectedItems.Clear();

            for (i = 0; i < listBox1.Items.Count; i++)
            {
                if (string.Equals(listBox1.Items[i].ToString(), textBox1.Text, StringComparison.CurrentCultureIgnoreCase))
                {
                    listBox1.SetSelected(i, true);
                }
            }

        }

答案 2 :(得分:0)

如果您想将所有项目转换为小写或大写,请尝试此操作 - 工作 100%

对于小写

For Each item As String In ListBox1.Items
            ListBox2.Items.Add(item.ToString.ToLower)
        Next

对于大写

For Each item As String In ListBox1.Items
            ListBox2.Items.Add(item.ToString.ToUpper)
        Next