Office中国论坛/Access中国论坛

标题: 怎样才可以使当前窗口的所有控件失效![紧急在线求助] [打印本页]

作者: Airin    时间: 2004-3-5 21:38
标题: 怎样才可以使当前窗口的所有控件失效![紧急在线求助]
我现有一窗体,我需要在打开时的加载事件或打开事件中写入符合标题要求的代码,请问各位大虾,我该怎么做?谢谢指导.
作者: paul16    时间: 2004-3-5 21:40
好象要一个一个的设定!  enable=false
作者: CJB_2001    时间: 2004-3-5 21:45
不明白,都没有用,打开干嘛?
作者: Airin    时间: 2004-3-5 21:47
谢谢2楼斑竹兄的回复,有没有一次性的?因为我的这个窗口实在控件太多.写起来非常的非常的麻烦.当然也可能某一类型的一次性搞定也可以,比如文本框类型,或组合框类型什么的.

回3楼的兄弟,因为我需要设置用条件来显示.




[此贴子已经被作者于2004-3-5 13:49:27编辑过]


作者: chenghai    时间: 2004-3-5 22:03
把下面这段代码写入窗体的加载事件中:

Private Sub Form_Load()
  Dim Ctrl As Control
  For Each Ctrl In Me.Controls
     Ctrl.Enabled = False
  Next
End Sub
作者: Airin    时间: 2004-3-5 22:09
谢谢老土哥,请问为什么要用到Next?另外,可以将上面代码作下注释吗?
作者: Airin    时间: 2004-3-5 22:17
我放入到加载事件中,出现以下错误提示,我的版本是XP简体的.

[attach]3775[/attach]
作者: chenghai    时间: 2004-3-5 22:25
呵呵,忘记一点了:标签等是没有Enabled属性的,你的窗体应该有不少的标签的,等一下,我重新写一段代码上来。

作者: chenghai    时间: 2004-3-5 22:53
用下面这段代码吧。如果还出现上述错误,说明你的窗体设计得比较复杂,还有一些其他控件在内。

Private Sub Form_Load()

  Dim Ctrl As Control
  For Each Ctrl In Me.Controls

    Select Case Ctrl.ControlType
    Case 100, 101, 102, 103, 118  ' 常见的无Enabled属性的控件应该都包括在内了吧。

    Case Else
      Ctrl.Enabled = False
    End Select

  Next

End Sub
作者: Airin    时间: 2004-3-5 22:54
为什么要加上NEST呀?谢谢土哥.
作者: sea.er    时间: 2004-3-5 23:00
For Each...Next 语句
      

针对一个数组或集合中的每个元素,重复执行一组语句。

语法

For Each element In group
[statements]
[Exit For]
[statements]

Next [element]

For...Each...Next 语句的语法具有以下几个部分:

部分 描述
element 必要参数。用来遍历集合或数组中所有元素的变量。对于集合来说,element 可能是一个 Variant 变量、一个通用对象变量或任何特殊对象变量。对于数组而言,element只能是一个 Variant 变量。
group 必要参数。对象集合或数组的名称(用户定义类型的数组除外)。
statements 可选参数,针对 group 中的每一项执行的一条或多条语句。



说明

如果集合中至少有一个元素,就会进入 For...Each 块执行。一旦进入循环,便先针对 group 中第一个元素执行循环中的所有语句。如果 group 中还有其它的元素,则会针对它们执行循环中的语句,当 group 中的所有元素都执行完了,便会退出循环,然后从 Next 语句之后的语句继续执行。

在循环中可以在任何位置放置任意个 Exit For 语句,随时退出循环。Exit For经常在条件判断之后使用,例如 If...Then,并将控制权转移到紧接在 Next 之后的语句。

可以将一个 For...Each...Next 循环放在另一个之中来组成嵌套式 For...Each...Next 循环。但是每个循环的 element 必须是唯一的。

注意 如果省略 Next 语句中的 element,就像 element 存在时一样执行。如果 Next 语句在它相对应的 For 语句之前出现,则会产生错误。

不能在 For...Each...Next 语句中使用用户自定义类型数组,因为 Variant 不能包含用户自定义类型。

作者: Airin    时间: 2004-3-5 23:13
谢谢,SEA.ER兄的解说.有点明白了.

[此贴子已经被作者于2004-3-5 15:13:10编辑过]


作者: sea.er    时间: 2004-3-5 23:16
不是我的解说,是帮助里面的,遇到问题要多看帮助,呵呵




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3