Dataview and Last keystroke

Hi I have create a event for textbox which basically searches for a matching string by taking input from a textbox, filters the results from a dataset using a dataview and shows the results in a datagridview . now the problem is what is want is when the input string does not gives anything matching , it should not let the user type that key and also at the same time the already filter results should not change .
for example if a column name has names like
Ankit
Rajesh
yogesh
and if the user types A
it should give
Ankit
Rajesh
and when he types az
the system should not let the user types z as it would not yeild anything and at the same time , it should not change the search results which was
Ankit
Rajesh .
please modify my code .
thanks in advance
private void customtextbox3_TextChanged(object sender, EventArgs e)
{
string searchText = customtextbox3.Text.Trim();
DataView dataView = dataSet.Tables[0].DefaultView;
if (searchText.Length > 0) // strings
{
dataView.RowFilter = $"name LIKE '%{searchText}%'";
if (dataView.Count == 0) // check if no rows match the filter
{
searchText = searchText.Substring(0, searchText.Length - 1);
customtextbox3.Text = searchText;
}
else
{
dataGridView1.DataSource = dataView;
}
}
else
{
dataGridView1.DataSource = dataSet.Tables[0];
}
}
another problem that i am facing is , there is a logical error in my code as when the code reaches customtextbox3.Text = searchText; , this line self executes the customtextbox3_TextChanged method . please correct this .