如何在.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。