none
急求 透明控件解决的问题! RRS feed

  • 问题

  • 需求:想做个类似panel的透明控件,将其拖到form上,能使form上的控件(textBox,checkBox,listBox等等)只能看见,不能选中,不能输入,请问这样的控件能否实现?

     

    2008年9月11日 12:39

答案

  • 你好,

    可以这样实现这个功能: 在自定义控件PreRender的时候注册一些JavaScript脚本到页面上,该脚本遍历页面上所有元素,找到你需要屏蔽的元素,然后给他们添加disabled="disabled". 这样一来只要页面上放了这个自定义控件就能屏蔽其他元素了.

    2008年9月15日 3:26
    版主

全部回复

  • 你得说明白到底是要做什么用,其实panel只是一个容器控件,panel也是可以选中的,在左上角的十字.

    我认为panel也不是什么透不透明的问题,只是背影色设置为control了吧?你把一个textbox控件放上去,右键点这个文本框选置于底层,看,是不是文本框不见了,这说明panel根本不是透明的,它只是窗本上层的一个容器.我是这样想的.

     

    2008年9月12日 0:47
  • 那就用panel

    2008年9月12日 1:23
    版主
  • 可能是问题写的不是太清楚吧,要不就是大家看的时候没有想想,如果直接使用panel的话,那么将textbox放在上面,能否获取不到焦点的功能?并且还能看到该控件的存在?

    这种需求是客户提出的,具体功能估计就是想做个类似蒙板那种,这部分可能先把画面做出来,具体的不让任何人操作。等时机成熟了 直接将蒙版扔了 一切都OK了

    2008年9月12日 5:06
  •  

    panel.enable=false
    2008年9月12日 7:11
    版主
  • 但是在效果上,给不加panel是有明显区别的啊,如在panel中的控件都灰显了,这个是不符合要求的,他想给正常的控件一样,唯一区别就是不能写任何东西,不能进行tab键移动。

    谢谢你的回复和关注!
    2008年9月12日 8:27
  • 你好,

    可以这样实现这个功能: 在自定义控件PreRender的时候注册一些JavaScript脚本到页面上,该脚本遍历页面上所有元素,找到你需要屏蔽的元素,然后给他们添加disabled="disabled". 这样一来只要页面上放了这个自定义控件就能屏蔽其他元素了.

    2008年9月15日 3:26
    版主