Rob Philpott
Ладно, просто не обращай на меня внимания. Я думал, что это winforms. Что за идиотка...
Я могу предложить, как мне это сделать. Во-первых, я бы выяснил, что такое разрешения, и решил, какие кнопки зависят от каких разрешений и какие разрешения есть у каждого пользователя. Вы можете просто жестко закодировать это или сделать что-то более сложное.
Затем какой-то глобальный метод, который перебирает кнопки на форме и выборочно отключает их. Я склоняюсь к тому, чтобы создать производный класс формы с этим методом в нем, а затем выполнить глобальный поиск и заменить весь существующий код формы на производный от этого. Держит его аккуратно и в одном месте.
В этом методе вы перебираете дочерние элементы управления, проверяете, являются ли они кнопками, и проверяете их разрешение. Возможно, вы могли бы сделать это, поместив что-то в свойство tag для обозначения разрешения. Вызовите метод из метода Load ().
В качестве альтернативы, если кнопки просто ванильные, вы можете создать подкласс кнопок, скажем PermissionButton, и снова выполнить глобальный поиск и замену, чтобы использовать это, а не стандарт. Я не совсем уверен, какой метод вы бы переопределили, чтобы отключить, возможно, активировать или что-то в этом роде.
Поэтому в основном делайте это в одном месте, используя производную форму или производную кнопку.