在VB6.0中,如果需要动态控制窗体控件,通常是在窗体上放一个控件,并将其 Index 设为 0,程序运行中,使用控件的Load和Unload事件就可以动态加载、卸载控件(第一个即Index属性为0的那个控件不能卸载),以达到灵活控制。但在 C#中,控件没有 Index,这个属性,也没有Load和Unload这两个事件动态加载和卸载控件,而是用另外一种方法。
C#中,需要动态加载、卸载控件时,不一定要先加入一个控件。而是在相应的代码中声明控件,然后对空间属性进行设置,最后使用 Form 中 Control 对象的 Add方法加载控件。下面笔者以自己开发的一个案例来说明这种方法。
需求:在一个WEB页面中,用户登录进入后,根据用户分配给该用户所属组别的权限显示相应的按钮,并且,当用户在页面中点击按钮时自动跳到相应的页面。按钮所实现的功能说明和跳转到的页面可以在系统中设置。
分析:由于该WEB页面面向所有用户,而用户的权限各不相同,因此,页面中的按钮不能固定,应能根据用户权限进行显示,而且按钮上的文本和链接应能体现出权限。可以在页面中布置权限数量的按钮,用户登录时显示权限数量的按钮并配置按钮文本和链接。但这样做太呆板,不够灵活,而用动态加载方法只需几行代码即可。
设计:
1、读取登录用户可操作的权限,以及权限的文本说明和执行该权限的页面链接,并将权限、说明、链接放在一个数组中
2、循环权限数组,执行下列操作
A、为每个权限分配一个按钮,并将权限名、说明、链接分别设置为按钮的 ID、Text、PostBackUrl 三个属
C#中,需要动态加载、卸载控件时,不一定要先加入一个控件。而是在相应的代码中声明控件,然后对空间属性进行设置,最后使用 Form 中 Control 对象的 Add方法加载控件。下面笔者以自己开发的一个案例来说明这种方法。
需求:在一个WEB页面中,用户登录进入后,根据用户分配给该用户所属组别的权限显示相应的按钮,并且,当用户在页面中点击按钮时自动跳到相应的页面。按钮所实现的功能说明和跳转到的页面可以在系统中设置。
分析:由于该WEB页面面向所有用户,而用户的权限各不相同,因此,页面中的按钮不能固定,应能根据用户权限进行显示,而且按钮上的文本和链接应能体现出权限。可以在页面中布置权限数量的按钮,用户登录时显示权限数量的按钮并配置按钮文本和链接。但这样做太呆板,不够灵活,而用动态加载方法只需几行代码即可。
设计:
1、读取登录用户可操作的权限,以及权限的文本说明和执行该权限的页面链接,并将权限、说明、链接放在一个数组中
2、循环权限数组,执行下列操作
A、为每个权限分配一个按钮,并将权限名、说明、链接分别设置为按钮的 ID、Text、PostBackUrl 三个属