private void mtxtFind_TextChanged(object sender, EventArgs e) { if (grdMain.Rows.Count < 1) { return; } int curcell = grdMain.CurrentCell.OwningColumn.Index; if (mtxtFind.TextBox.Text == "") { grdMain.CurrentCell = grdMain.Rows[0].Cells[curcell]; return; } string fnd = mtxtFind.TextBox.Text; if ((grdMain.Columns[grdMain.CurrentCell.ColumnIndex].Name == "StartDateTime") || (grdMain.Columns[grdMain.CurrentCell.ColumnIndex].Name == "NextDateTime")) { fnd = fnd.Replace(' ', '/').Replace('.', '/').Replace(':', '/'); fnd = klc(fnd); } fnd = CommonFunctions.EscapeLikeValue(fnd); string col = cConfig.dsConfig.Tables["Tasks"]. Columns[grdMain.CurrentCell.ColumnIndex].ColumnName; string sort = cConfig.dsConfig.Tables["Tasks"].DefaultView.Sort; if (sort == "") { sort = "ID DESC"; } FindRows = cConfig.dsConfig.Tables["Tasks"].Select("[" + col + "]" + " LIKE '%" + fnd + "%'", sort); if (FindRows.Length == 0) { return; //nothing found } CurFind = 0; int currow = -1; foreach (DataGridViewRow dgvr in grdMain.Rows) { currow++; if (dgvr.Cells[0].Value.ToString() == FindRows[CurFind]["ID"].ToString()) { grdMain.CurrentCell = grdMain.Rows[currow].Cells[curcell]; } } }