拥有DataGrind在Windows应用程序中启用搜索选项,如Microsoft Excel搜索整个工作表(DataGrid)。
foreach (DataGridViewRow row in DisplayGridView.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value == searchValue)
{
cell.Selected = true;
break;
}
}
}
我已尝试过上述方法但未获得结果。我恭维这段代码
foreach (DataGridViewRow row in DisplayGridView.Rows)
{
for (int i = 0; i < DisplayGridView.Columns.Count; i++)
{
if (row.Cells[i].Value.ToString().Equals(searchValue))
{
row.Cells[i].Selected = true;
break;
}
}
}
但是,如果有人建议代码,结果为null。
答案 0 :(得分:0)
我假设您没有检查空值。添加这些空值检查似乎可以像您描述的那样工作。在ToString()
之后将cell.Value == searchValue
方法添加到行Value
使比较成功。也不需要休息。
DisplayGridView.ClearSelection();
foreach (DataGridViewRow row in DisplayGridView.Rows) {
foreach (DataGridViewCell cell in row.Cells) {
if (cell.Value != null) {
if (cell.Value.ToString() == searchValue) {
cell.Selected = true;
}
}
}
}
下一个方法
DisplayGridView.ClearSelection();
foreach (DataGridViewRow row in DisplayGridView.Rows) {
for (int i = 0; i < DisplayGridView.Columns.Count; i++) {
if (row.Cells[i].Value != null) {
if (row.Cells[i].Value.ToString().Equals(searchValue)) {
row.Cells[i].Selected = true;
}
}
}
}
如果要在单元格字符串中包含搜索字符串时突出显示单元格,则只需将equals方法更改为contains。
DisplayGridView.ClearSelection();
foreach (DataGridViewRow row in DisplayGridView.Rows) {
foreach (DataGridViewCell cell in row.Cells) {
if (cell.Value != null) {
if (cell.Value.ToString().Contains(searchValue)) {
cell.Selected = true;
}
}
}
}
希望这有帮助。