Foxtable(狐表)用户栏目专家坐堂 → [求助] 如何得到控件的名称?


  共有4658人关注过本帖树形打印复制链接

主题:[求助] 如何得到控件的名称?

帅哥哟,离线,有人找我吗?
qw123456707
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:691 威望:0 精华:0 注册:2013/8/14 23:04:00
[求助] 如何得到控件的名称?  发帖心情 Post By:2013/9/26 10:14:00 [只看该作者]

我想遍历含有特定字符名称的某类型控件,但是不知道怎么得到控件的名称。。。没有name属性

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/26 10:14:00 [只看该作者]

有 NAME属性的啊.

 回到顶部
帅哥哟,离线,有人找我吗?
jspta
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/9/26 10:17:00 [只看该作者]

以下是引用Bin在2013-9-26 10:14:00的发言:
有 NAME属性的啊.

有些属性不显示的,狐爸应该从新整理完善下了。。


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/9/26 10:18:00 [只看该作者]

精灵提示有时候不太好使,不能全信.

 回到顶部
帅哥哟,离线,有人找我吗?
qw123456707
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:100 积分:691 威望:0 精华:0 注册:2013/8/14 23:04:00
回复:(Bin)精灵提示有时候不太好使,不能全信.  发帖心情 Post By:2013/9/26 10:23:00 [只看该作者]

不仅是精灵,帮助文件都没有,我要遍历的是标签控件,通用属性和标签属性都没有name。。。。
强烈建议狐爸补充代码
特别对于不会vb的新手来讲,我们就把帮助文件当做是教科书了,里面有什么就用什么了
或者指引下自我提升的路径也好图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
不倒的翁
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:476 积分:3523 威望:0 精华:0 注册:2012/12/13 14:23:00
  发帖心情 Post By:2013/9/26 14:53:00 [只看该作者]

 狐爸是引路人,师傅领进门,修行靠个人。
看懂代码结构是关键,再则,Name这都是通用成员。一通全通。任何控件都少不了。
知道一个就顺藤摸瓜知道其他的。
图片点击可在新窗口打开查看


 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/9/26 15:32:00 [只看该作者]

For Each c As Winform.Control In Forms(Cstr(args(0))).Controls(Cstr(args(1))).Children
If(Cstr(c.Gettype().Name)="TextBox" Or Cstr(c.Gettype().Name)="ComboBox" Or Cstr(c.Gettype().Name)="NumericComboBox" Or Cstr(c.Gettype().Name)="CheckBox" Or Cstr(c.Gettype().Name)="DateTimePicker") Then
c.Enabled=args(2)
End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/9/26 15:41:00 [只看该作者]

For Each c As Winform.Control In Forms(Cstr(args(0))).Controls(Cstr(args(1))).Children
    c.Enabled=args(2)
    If(Cstr(c.Name)="Save" Or Cstr(c.Name)="Cancel") Then
    If(args(2)=True) Then
    c.Enabled= False
    Else
    c.Enabled= True
    End If
    End If
Next

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  9楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2013/9/26 16:57:00 [只看该作者]

判断控件类型

如果我希望清除窗口中所有文本框的内容,显然只能使用遍历才能完成这样的任务。
但是遍历控件的时候,只能使用WinForm.Control类型的变量,但是这样的变量又不能访问文本框的Value属性。
所以只能在遍历控件的时候判断控件类型,然后用具体的控件类型变量来引用控件:

For Each c As WinForm.Control In e.Form.Controls
    If
Typeof c Is WinForm.TextBox Then '判断控件是否是文本框
       
Dim t As WinForm.TextBox = c '使用特定类型的变量引用控件
        t.Value =
Nothing
    End
If
Next

判断变量是否是某类型的语法是:

Typeof 变量 Is 类型

如果变量是指定的类型则返回True,否则返回False。

本节介绍的派生原理,不仅适合窗口设计,也适合今后要介绍的菜单设计。


 回到顶部
帅哥哟,离线,有人找我吗?
longtechwj
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:659 积分:4686 威望:0 精华:0 注册:2013/6/11 17:51:00
  发帖心情 Post By:2013/9/26 18:13:00 [只看该作者]

我有写这样的函数,清空指定的控件内容

Dim i As Integer
For i=0 To Tables(Cstr(args(0))).Cols.Count-1
If(Tables(Cstr(args(0))).Cols(i).Name=Cstr(args(1))) Then
Forms(Cstr(args(2))).Controls(Tables(Cstr(args(0))).Cols(i).Name).Checked=False
Else
Forms(Cstr(args(2))).Controls(Tables(Cstr(args(0))).Cols(i).Name).Value=Nothing
End If
Next


 回到顶部
总数 11 1 2 下一页