1

写入所需的字词显示在文本框中。我想要多行...但是,通过此代码,我只选择了一行.. 我想输出到屏幕行.. 而不是绘制,我只想显示指定的行(与文本框的文本)。如何做到这一点?

     try
        {

            dataGridView1.ClearSelection();   //or restore rows backcolor to default
            for (int i = 0; i < (dataGridView1.Rows.Count); i++)
            {
                for (int j = 0; j < (dataGridView1.Columns.Count); j++ )
                    if (dataGridView1.Rows[i].Cells[j].Value.ToString().StartsWith(txbSearchName.Text, true, CultureInfo.InvariantCulture))
                        //(dataGridView1.Rows[i].Cells[j].Value.ToString().StartsWith(txbSearchName.Text, true, CultureInfo.InvariantCulture))
                    {
                        dataGridView1.FirstDisplayedScrollingRowIndex = i;
                        dataGridView1.Rows[i].Selected = true; //It is also possible to color the row backgroud
                        return;
                    }
            }
        }
        catch (Exception)
        {
            MessageBox.Show("not exist");
        }
4

1 回答 1

0

如果您想根据搜索框过滤数据,那么您应该将数据放入datatable并过滤dataview并绑定dataviewdatagridview. (你可以在这里这里学习)

但是,如果您想更改当前代码,那么您应该删除return,因为它将从该行返回并且不会匹配其他行

        try
        {

            dataGridView1.ClearSelection();   //or restore rows backcolor to default
            for (int i = 0; i < (dataGridView1.Rows.Count); i++)
            {
                for (int j = 0; j < (dataGridView1.Columns.Count); j++ )
                    if ((dataGridView1.Rows[i].Cells[j].Value.ToString().StartsWith(txbSearchName.Text, true, CultureInfo.InvariantCulture)) == false)
                        //(dataGridView1.Rows[i].Cells[j].Value.ToString().StartsWith(txbSearchName.Text, true, CultureInfo.InvariantCulture))
                    {
                        //dataGridView1.FirstDisplayedScrollingRowIndex = i;
                        //dataGridView1.Rows[i].Selected = true; //It is also possible to color the row backgroud
                        //return;
                        dataGridView1.Rows.Remove(dataGridView1.Rows[i]);
                    }
            }
        }
        catch (Exception)
        {
            MessageBox.Show("not exist");
        }
于 2015-12-22T06:24:06.290 回答