datagridview查询
#region 当前任务搜索.
/// <summary>
/// 当前任务搜索.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txt_KeywordofCurrentTask_TextChanged(object sender, EventArgs e)
{
setRowsVisible();
}
private void setRowsVisible()
{
string keyword = txt_KeywordofCurrentTask.Text;
for (int i = 0; i < dgv_CurrentTasks.RowCount; i++)
{
DataGridViewRow row = dgv_CurrentTasks.Rows[i];
setRowVisible(row, keyword);
}
}
private static void setRowVisible(DataGridViewRow row, string keyword)
{
//计算状态
bool visible = row
.Cells
.AsIEnumerable<DataGridViewCell>()
.Select(cell => cell.FormattedValue != null ? cell.FormattedValue.ToString() : string.Empty)
.Any(txt => txt.IndexOf(keyword, StringComparison.CurrentCultureIgnoreCase) != -1);
//设置可见状态
row.Visible = visible;
//如果此行“可见”,并且“选中”
if (row.Visible && row.Selected)
{
//调整当前单元格
row.DataGridView.CurrentCell = row.Cells[0];
}
}
#endregion