如何在.NET中使用LinkLabels的ArrayList发生LinkClicked事件

时间:2020-03-06 14:47:59  来源:igfitidea点击:

我正在处理一个表单,该表单将显示打开不同类型报告的链接。该系统具有不同类型的用户,因此用户应该只能看到指向他们可以访问的报告类型的链接。

当前,我的设置方法是我有一个LinkLabels的ArrayList,但是我遇到的问题是如何为ArrayList中的每个LinkLabel设置一个LinkClicked事件,以便它调出特定于每个报告的表单。

解决方案

实际上,对于所有的linklabel,我都会有一个事件处理程序(在ArrayList的数据绑定过程中添加该处理程序),并在LinkLabel的CommandName标签中加载报告的名称。当事件处理程序触发时,我们将检查CommandName属性并触发适当的功能以加载给定的报告。

绝对为所有动态LinkLabel实例推荐一个事件处理程序。

我通常使用Hashtable,其中键是LinkLabel实例,值是将在click事件中使用的值(例如报表实例,如果适用)。

然后在点击事件中使用(例如)

Report r = m_TheTable[sender] as Report;
if( r != null ) r.DoSomething();

我们可以将相同的事件处理程序应用于列表中的每个LinkLabel,并从sender参数中获取特定的LinkLabel。