Хук уровня приложения для OpenFileDialog и SaveFileDialog - PullRequest
1 голос
/ 14 сентября 2011

Я занимаюсь разработкой приложения C # для Windows Forms с использованием .NET 4, и передо мной стоит очень интересное требование.В результате я хотел бы иметь два типа OpenFileDialog / SaveFileDialog: стандартные по умолчанию из Windows API и пользовательские со специальными функциями, подходящими для моего бизнес-сценария.В зависимости от бизнес-правила должен отображаться диалоговое окно по умолчанию или пользовательское диалоговое окно.

У меня уже есть пользовательские Open и SaveFileDialogs.Сложность в том, что я не могу просто реализовать логику для вызова того или иного, вместо этого мне нужно каким-то образом перехватить вызовы OpenFileDialog.ShowDialog и SaveFileDialog.ShowDialog на уровне приложения, чтобы он отображал диалог по умолчанию или пользовательский диалог.

Мне нужно вот так, потому что я также использую сторонние элементы управления (например, DevExpress) и мне нужно, чтобы, когда любой из элементов управления DevExpress вызывал OpenFileDialog или SaveFileDialog, то же самое бизнес-правило должно применяться для определенияесли будет отображаться диалоговое окно по умолчанию или пользовательское.

Таким образом, каждый раз, когда кто-либо в моей области приложения вызывает OpenFileDialog или SaveFileDialog, это бизнес-правило должно запускаться, чтобы найти правильный отображаемый диалог (по умолчанию или пользовательский).).

Кому-нибудь когда-нибудь нужно было реализовывать что-то подобное?

...