Как создать событие LinkClicked, используя ArrayList LinkLabels в .NET

StackOverflow https://stackoverflow.com/questions/141212

Вопрос

Я работаю над формой, в которой будут отображаться ссылки для открытия различных типов отчетов.В этой системе есть разные типы пользователей, поэтому пользователи должны иметь возможность видеть ссылки только на те типы отчетов, к которым они могут получить доступ.

В настоящее время способ, которым я это настроил, заключается в том, что у меня есть ArrayList LinkLabels, но проблема, с которой я сталкиваюсь, заключается в том, как создать событие LinkClicked для каждой LinkLabel в ArrayList, чтобы оно вызывало форму, специфичную для каждого отчета.

Это было полезно?

Решение

Вы можете применить один и тот же обработчик событий к каждой метке ссылки в вашем списке и получить конкретную метку ссылки из аргумента sender.

Другие советы

На самом деле, у меня был бы единый обработчик событий для всех linklabels (добавьте обработчик во время процесса привязки данных ArrayList) с именем отчета, который будет загружен в метку CommandName метки LinkLabel.Когда срабатывает обработчик событий, вы должны проверить атрибут CommandName и отключить соответствующую функциональность для загрузки данного отчета.

Определенно рекомендую использовать один обработчик событий для всех экземпляров dynamic LinkLabel.

Обычно я использую хэш-таблицу, где ключом является экземпляр LinkLabel, а значением - то, что будет использоваться в событии click (например, экземпляр report, если это уместно).

Затем в событии click, которое вы используете (например)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top