检查DataGridView是否包含特定单词

时间:2017-06-09 04:03:35

标签: c# datagridview

我目前正在做一个学校项目,我需要知道如何检查datagridview的任何一行是否包含任何列中的特定单词,并隐藏不包含该单词的行,在任何专栏中。 我还没有代码,只有datagridview和表单上的文本框。

3 个答案:

答案 0 :(得分:1)

您只想在文本框不为空或空字符串时进行过滤(确保修剪字符串以删除前导和尾随空格)。

 (dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("columnname like '%{0}%'", textBoxFilter.Text);
  • 过滤表达式

    • columnname like '%{0}%'表示columnname包含特定的单词/字符串。
    • columnname not like '%{0}%表示不包含

答案 1 :(得分:0)

我假设您使用DataSource作为TextBox.Text

当您将RowFilter作为TextChanged传递并清除它时,它将变为空字符串。

private void textBoxFilter_TextChanged(object sender, EventArgs e) { if(!string.IsNullOrWhiteSpace(textBox1.Text)) { (dataGridViewFields.DataSource as DataTable).DefaultView.RowFilter = string.Format("Field = '{0}'", textBoxFilter.Text); } } 事件中,只检查TextBox是否为空。您的活动看起来像这样:

{{1}}

答案 2 :(得分:0)

您需要迭代所有行和单元格, 如果您的关键字在单元格中找到,则隐藏该行

private void HideRow(string word)
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        foreach (DataGridViewCell cell in row.Cells)
        {
            var value = Convert.ToString(cell.Value);
            if (word != value)
            {
                row.Visible = false;
                break;
            }
        }
    }
}

TextChanged活动或ButtonClick

上随时随地调用此方法