Если ваша система имеет возможность показывать один и тот же тип формы для разных данных экземпляра, вы можете создать систему проверки, которая выполняет итерацию всех существующих открытых форм, ищет уникальный идентификатор данных экземпляра и затем повторно отображает любую найденную форму.
например. имеющий класс формы CustomerDetails, который содержит открытое свойство CustomerUniqueID:
foreach(Form f in CurrentlyDisplayedForms)
{
CustomerDetails details = f as CustomerDetails;
if((details != null) && (details.CustomerUniqueUD == myCustomerID))
{
details.BringToFront();
}
else
{
CustomerDetails newDetail = new CustomerDetails(myCustomerID);
}
}
Мы также используем тот же механизм для автоматического принудительного обновления привязки данных, когда данные клиента были отредактированы и сохранены.