В твоём коде метод `cmbSort_SelectedIndexChanged` работает только с `displayClients`. Замени его на это:
```csharp
private void cmbSort_SelectedIndexChanged(object sender, EventArgs e)
{
string search = txtSearch.Text.Trim().ToLower();
string sort = cmbSort.SelectedItem?.ToString();
if (tabControl1.SelectedTab == tabClients)
{
var filtered = displayClients.AsQueryable();
if (!string.IsNullOrEmpty(search))
filtered = filtered.Where(c =>
c.FullName.ToLower().Contains(search) ||
c.Phone.Contains(search));
if (sort == "По ФИО") filtered = filtered.OrderBy(c => c.FullName);
else if (sort == "По телефону") filtered = filtered.OrderBy(c => c.Phone);
dataGridViewClients.DataSource = filtered.ToList();
}
else if (tabControl1.SelectedTab == tabEmployees)
{
var filtered = displayEmployees.AsQueryable();
if (!string.IsNullOrEmpty(search))
filtered = filtered.Where(c =>
c.FullName.ToLower().Contains(search) ||
c.Phone.Contains(search));
if (sort == "По ФИО") filtered = filtered.OrderBy(c => c.FullName);
else if (sort == "По телефону") filtered = filtered.OrderBy(c => c.Phone);
dataGridViewEmployees.DataSource = filtered.ToList();
}
else if (tabControl1.SelectedTab == tabMaterials)
{
var filtered = displayMaterials.AsQueryable();
if (!string.IsNullOrEmpty(search))
filtered = filtered.Where(c =>
c.MaterialName.ToLower().Contains(search));
dataGridViewMaterials.DataSource = filtered.ToList();
}
}
```
И в `txtSearch_TextChanged` просто вызови тот же метод:
```csharp
private void txtSearch_TextChanged(object sender, EventArgs e)
{
cmbSort_SelectedIndexChanged(sender, e);
}
```