Foxtable(狐表)用户栏目专家坐堂 → 关于外部添加的Combobox无法调用的问题


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

主题:关于外部添加的Combobox无法调用的问题

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


加好友 发短信
等级:婴狐 帖子:36 积分:349 威望:0 精华:0 注册:2013/1/4 18:45:00
关于外部添加的Combobox无法调用的问题  发帖心情 Post By:2013/4/18 17:17:00 [只看该作者]

Dim cb1 As New Windows.Forms.Combobox
With cb1
    .width = 90
    .left = Forms("数据区").Width / 4
    .Top = 15
    .Name = "字段"
End With
Forms("数据区").Controls("底层面板").Panel1.BaseControl.Controls.Add(cb1)
我添加了一个Combobox的控件,然后循环了下所有的控件,发现没有叫做“字段的控件”,也无法调用这个控件,但是这个控件确实添加成功了的,请问各位高手,这是什么情况

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


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

例子发出来看看.

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


加好友 发短信
等级:婴狐 帖子:36 积分:349 威望:0 精华:0 注册:2013/1/4 18:45:00
  发帖心情 Post By:2013/4/18 17:32:00 [只看该作者]

这个基本就是全部的代码了,我声明了这个控件,
Dim 字段 As Winform.Combobox = Forms("数据区").Controls("字段")
提示无名为字段这个控件,除了这个错误,其他都正常。
用 Dim 字段 As Windows.Forms.Combobox = Forms("数据区").Controls("字段")
也是同样的问题

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


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

Dim cb1 As WinForm.ComboBox
cb1 = e.Form.CreateControl("字段", ControlTypeEnum.Combobox)
With cb1
    .width = 90
    .left = Forms("数据区").Width / 4
    .Top = 15
End With
Forms("数据区").Controls("底层面板").AddControl(cb1)

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


加好友 发短信
等级:婴狐 帖子:36 积分:349 威望:0 精华:0 注册:2013/1/4 18:45:00
  发帖心情 Post By:2013/4/18 17:48:00 [只看该作者]

因为我想要自定义一个SelectedIndexChanged事件所以才调用外部的控件,而这个事件也已经能实现了,我定义的其他类型的控件,像button,label都可以,唯独这个不行,遍历控件名字的时候,这个控件的name为空,会不会因为.name = "字段"这种写法的问题。

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


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

有可能.

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/4/18 17:57:00 [只看该作者]

你可以按照标准的方法来添加:

Dim cb1 As WinForm.ComboBox
cb1 = e.Form.CreateControl("字段", ControlTypeEnum.Combobox)
With cb1
    .width = 90
    .left = Forms("数据区").Width / 4
    .Top = 15
End With
Forms("数据区").Controls("底层面板").AddControl(cb1)

 

如果你要底层的控件来设置事件,可以:

Dim cb2 As New Windows.Forms.Combobox = e.Form.Controls("ComboBox1").BaseControl

 


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


加好友 发短信
等级:婴狐 帖子:36 积分:349 威望:0 精华:0 注册:2013/1/4 18:45:00
  发帖心情 Post By:2013/4/19 9:06:00 [只看该作者]

我调用了底层控件,可为什么name属性会为空呢,如果用标准方法的话,怎么调用combobox的事件呢

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/4/19 9:27:00 [只看该作者]

你获得了底层的控件:

 

Dim cb2 As New Windows.Forms.Combobox = e.Form.Controls("ComboBox1").BaseControl

 

就可以给这个底层控件添加事件处理程序,例如:

 

AddHandler cb2.SelectedIndexChanged, AddressOf ComboBox1SelectedIndexChanged


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


加好友 发短信
等级:婴狐 帖子:36 积分:349 威望:0 精华:0 注册:2013/1/4 18:45:00
  发帖心情 Post By:2013/4/19 9:30:00 [只看该作者]

这个我知道,只是现在问题就是这个底层控件的name,combobox1为空的,我无法获取此控件的属性
Dim cb1 As New Windows.Forms.Combobox
With cb1
    .width = 90
    .left = Forms("数据区").Width / 4
    .Top = 15
    .Name = "字段"
End With
添加成功后,明明name属性是“字段”,但是显示出来却是为空值

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