C#检查DataGridView是否包含特定单词

时间:2016-04-25 18:10:10

标签: c# datagridview colors contains

我目前正在研究一种IRC机器人。发送的消息将显示在DataGridView中。所以现在我想检查一下发送的消息是否包含特定的单词。我们说“测试”。

所以它应检查以下内容:

假设发送的消息是添加到DataGridView的:我的名字是test。

现在包含单词“test”的Cell应该变成红色。

当消息仅包含“test”时,我已经解决了这个问题。但我真的不知道如何检查句子中的单词。

//编辑:我试过这段代码:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
      if (row.Cells[1].Value.ToString() == "test")
          row.Cells["chat1"].Style.ForeColor = Color.Red;
          //row.Cells["chat1"].Style.ForeColor = Color.CadetBlue;
}

亲切的问候, 马克斯:)

3 个答案:

答案 0 :(得分:4)

使用Contains检查以验证给定输入中任何位置的字符串存在。在检查ToLower之前,您可以考虑应用ToUpperContains方法,以确保获得正确的结果

foreach (DataGridViewRow row in dataGridView1.Rows)
{
     if (row.Cells[1].Value.ToString().Contains("test"))
        row.Cells["chat1"].Style.ForeColor = Color.Red;
        //row.Cells["chat1"].Style.ForeColor = Color.CadetBlue;
}

答案 1 :(得分:1)

您还可以练习使用linq解决此问题

 var items = this.dataGridView1.Rows.Cast<DataGridViewRow>()
             .Where(row => row.Cells[1].Value.ToString() == "Test");

 foreach(DataGridViewRow row in items)
 {
      row.Cells["chat1"].Style.ForeColor = Color.Red;
 }

答案 2 :(得分:0)

这是一个旧帖子,但是我仍然可以用一些替代方法来填写。 这工作得很好,没有循环。  您确实需要选择一个想法。

if (dgridvwListan.SelectedRows[0].Cells[2].Value.ToString() =="thewordincell")   
dgridvwListan.SelectedRows[0].Cells[1].Style.BackColor = Color.Pink;