网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
动态加载控件
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

在VB6.0中,如果需要动态控制窗体控件,通常是在窗体上放一个控件,并将其 Index 设为 0,程序运行中,使用控件的Load和Unload事件就可以动态加载、卸载控件(第一个即Index属性为0的那个控件不能卸载),以达到灵活控制。但在 C#中,控件没有 Index,这个属性,也没有Load和Unload这两个事件动态加载和卸载控件,而是用另外一种方法。
    C#中,需要动态加载、卸载控件时,不一定要先加入一个控件。而是在相应的代码中声明控件,然后对空间属性进行设置,最后使用 Form 中 Control 对象的 Add方法加载控件。下面笔者以自己开发的一个案例来说明这种方法。
  需求:在一个WEB页面中,用户登录进入后,根据用户分配给该用户所属组别的权限显示相应的按钮,并且,当用户在页面中点击按钮时自动跳到相应的页面。按钮所实现的功能说明和跳转到的页面可以在系统中设置。
  分析:由于该WEB页面面向所有用户,而用户的权限各不相同,因此,页面中的按钮不能固定,应能根据用户权限进行显示,而且按钮上的文本和链接应能体现出权限。可以在页面中布置权限数量的按钮,用户登录时显示权限数量的按钮并配置按钮文本和链接。但这样做太呆板,不够灵活,而用动态加载方法只需几行代码即可。
设计:
    1、读取登录用户可操作的权限,以及权限的文本说明和执行该权限的页面链接,并将权限、说明、链接放在一个数组中
    2、循环权限数组,执行下列操作
      A、为每个权限分配一个按钮,并将权限名、说明、链接分别设置为按钮的 ID、Text、PostBackUrl 三个属性。
      B、设置每个按钮的 Visible 属性为 True。
      C、将按钮加载到WEB页面中。
      D、为每个按钮后加上 <BR> 标记,以换行将按钮显示为一列。
程序实现:
    本文对读取按钮权限到数组省略,只介绍为权限动态加载按钮。
    //tStrMenuItem为用户权限列表数组,共三列
    for (int i = 0; i <= tIntPowerCount; i++)             //循环权限列表
        {
          Button menuBtn = new Button();           //声明按钮变量
          menuBtn.Width = 282;                 //设置按钮宽度
          menuBtn.ID = tStrMenuItem[i, 0].ToString();   //新增按钮名称
          menuBtn.Text = "   " + tStrMenuItem[i, 1].ToString();
          menuBtn.PostBackUrl = tStrMenuItem[i, 2].ToString();
          menuBtn.Visible = true;
          form1.Controls.Add(menuBtn);           //将按钮添加到WEB页面
          form1.Controls.Add(new LiteralControl("<br>"));   //换行
        }
  这样,一个动态加载按钮就完成了,只要在系统中设置好用户组的权限、对应的操作页面,则用户组下的用户登录后就可以见到自己能操作的项目,从而达到灵活配置系统的效果。

  • 上一篇资讯: C#中的GridView 嵌套
  • 下一篇资讯: 匈牙利算法(C#)实现
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号