Загрузка данных


В твоём коде метод `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);
}
```