我目前正在研究一种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;
}
亲切的问候, 马克斯:)
答案 0 :(得分:4)
使用Contains检查以验证给定输入中任何位置的字符串存在。在检查ToLower
之前,您可以考虑应用ToUpper
或Contains
方法,以确保获得正确的结果
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;