从搜索框突出显示datagridview的最佳方法

时间:2015-07-09 06:50:25

标签: c# datagridview

我将日志文件连续写入datagridview。 但是我想在点击时突出显示搜索栏中的行。 我可以轻松地从Ios中查看10000行日志,因此我希望它尽可能高效。

我该怎么办? 以前这是我做的,它给出了错误。当我运行它时,它不起作用并崩溃。

private void searchBtn_Click(object sender, EventArgs e)
    {
        string search = textBox2.Text;
        if (search != null)
        {
            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (dataGridView1.Rows[i].Cells[0].Value == search)
                {
                    dataGridView1.Rows[i].Selected = true;
                    dataGridView1.Rows[i].Visible = true;
                }
                else
                {
                    dataGridView1.Rows[i].Visible = false;
                    dataGridView1.Rows[i].Selected = false;
                }

            }
        }

    }

1 个答案:

答案 0 :(得分:0)

可以尝试 DataGridView CellFormatting 事件

如果匹配textBox1.Text:

,这样的字体会使字体变为红色
private void dataGridView1_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    // Change the font color of the row if the textBox1.Text string matches a value on the dataGridView
    if (textBox1.Text == Convert.ToString(e.Value))
    {
        this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Red;  // Set font color red
        this.dataGridView1.Rows[e.RowIndex].DefaultCellStyle.Font = new System.Drawing.Font(this.Font, FontStyle.Bold);   // Set Bold   
    }            
}