繁体   English   中英

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

[英]C# Check if DataGridView Contains specific word

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

所以它应该检查以下内容:

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

现在包含单词“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;
}

亲切的问候,马克斯:)

检查包含,以验证字符串是否存在于给定输入中。 您可以考虑在检查Contains之前确保应用ToLowerToUpper方法,以确保获得正确的结果

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;
}

您也可以练习使用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;
 }

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM