如何做一个简单的dataGridView搜索/过滤?

Chr*_*oro 4 c# oop datatable visual-studio

是的,我有一个在Visual Studio C#中制作的事件驱动的Windows窗体项目.这是我从头开始制作的电话日记.它实际上工作正常,但我只是想为用户添加另一个功能.

用户输入联系人,想要将其详细信息添加到datagridview.并且他们可以添加它们,可以在程序运行时根据需要编辑它们,可以从excel文件添加(导入)更多人,然后可以将其导出到新的excel文件.因此,没有任何内容保存到程序中,他们想要做的所有事情必须在程序运行期间发生,并根据需要导出到新的excel文件.

所以一切正常但我想让用户在程序(应用程序内)中搜索当前的datagrid(dataGridView1),我无法弄清楚如何.

我有它的用户可以对列升序/降序排序(这是数据网格的内置功能),但我希望有特定的文本搜索.我不想制作一个MySqlConnection和所有这些,我只是想能够,比如说,进入搜索按钮并对其进行编程(点击)以仅搜索searchTextBox等于任何单元格中的值的位置我的dataGridView1,只显示那些结果.

不知道为什么这么难找,有可能吗?我认为这很简单,但我无法找到如何做到这一点.下面是我现在申请的图片.此外,如果你碰巧有任何想法,如何使用户更好,这将是很好的.(:

地址簿/电话日记

Ano*_*B.K 6

试试吧,看看,

    private void searchbutton_Click(object sender, EventArgs e)
    {
    string searchValue = searchtextBox.Text;
    dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    try
    {
        bool valueResult = false;
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            for (int i = 0; i < row.Cells.Count; i++)
            {
                if (row.Cells[i].Value != null && row.Cells[i].Value.ToString().Equals(searchValue))
                {
                    int rowIndex = row.Index;
                    dataGridView1.Rows[rowIndex].Selected = true;
                    valueResult = true;
                    break;
                }
            }

        }
        if (!valueResult)
        {
            MessageBox.Show("Unable to find " + searchtextBox.Text, "Not Found");
            return;
        }
    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.Message);
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 为什么人们会对此进行投票?我按照你的代码,它正在做我想要的.但是你想要添加ToUpper() - 所以它看起来像row.Cells [i] .Value.ToString().ToUpper()和字符串searchValue = searchTextBox.Text.ToUpper().只是为了使它不区分大小写.再次感谢我认为这是沿着这些方向的东西,但我无法弄明白. (2认同)