任何人都可以帮我找到单词中的字符串,即如何在datagridview中搜索名称的任何部分?例如。 RamGopalVarma,如果我在搜索选项中只键入varma,它应该在gridview中找到。
以下是我的代码,仅在我提供总名称时才有效。当我将“Equals”改为“Contains”时,它无效。
private void button3_Click(object sender, EventArgs e)
{
dataGridView1.ClearSelection();
// Code to search the alphanumneric Part Number (in Column1 header called "Name") and highlihgt the row
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells["Name"].Value.ToString().Equals(textBox3.Text, StringComparison.CurrentCultureIgnoreCase))
{
dataGridView1.Rows[row.Index].Selected = true;
dataGridView1.Rows[row.Index].DefaultCellStyle.BackColor = Color.Yellow;
}
}
}
答案 0 :(得分:1)
试试这个Pravii
if (row.Cells["Name"].FormattedValue.ToString().Contains(textBox1.Text))
或搜索所有单元格......
foreach (DataGridViewRow r in dataGridView1.Rows)
{
foreach (DataGridViewCell c in r.Cells)
{
if(c.FormattedValue.ToString().Contains(textBox1.Text))
{
//do your work.....
}
}
}
试试这个pravii
if(c.FormattedValue.ToString().ToLower().Contains(textBox1.Text.ToLower()))
答案 1 :(得分:0)
为什么不使用包含类似:
if (row.Cells["Name"].Value.ToString().Contains(textBox3.Text))
{
...the rest of the code if match
}
答案 2 :(得分:0)
问题是.Equals方法有一个忽略大小写的选项,而.Contains方法是区分大小写的。你可以尝试类似的东西:
if (row.Cells["Name"].Value.ToString().ToUpperInvariant().Contains(textBox3.Text.ToUpperInvariant()))
{
// do something
}
如果是我,我会在循环之前将textBox3文本转换为仅一次。