Foxtable(狐表)用户栏目专家坐堂 → [求助]添加控件的名称问题


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

主题:[求助]添加控件的名称问题

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
[求助]添加控件的名称问题  发帖心情 Post By:2017/8/31 10:02:00 [只看该作者]

请教老师:下面代码执行后,新加的控件在遍历时为什么没有名称

Dim AxCAD1 As new AxCAD.AxMxDrawX
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)

For Each c As object In e.Form.Controls
    MessageBox.Show(c.name)
Next

弹出的消息框中,原来的控件名称显示正常,新加的AxCAD1控件名称是空的,就是弹出的消息框是空的,请问是什么问题?

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 10:04:00 [只看该作者]

还有个问题
加上代码  AxCAD1.ShowMenuBar = False  后,弹出错误信息

引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。

在VS中,属性ShowMenuBar = False  是正常可以设置的

这个属性在狐表中该如何引用 ?
[此贴子已经被作者于2017/8/31 10:05:48编辑过]

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


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

Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "abc"
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)

 

如果要引用,就这样写

 

Dim obj = e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls("abc")


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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 10:19:00 [只看该作者]


Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "AxCAD123"
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)
Dim obj1 = e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls("AxCAD1")
AxCAD1.width = e.Form.Controls("SplitContainer1").panel1.width
AxCAD1.height = e.Form.Controls("SplitContainer1").panel1.height

For Each c As object In e.Form.Controls
    MessageBox.Show(c.name)
   原来的控件名称显示 正常,新加的控件名称是空的

Next
MessageBox.Show(obj1.name)      
 弹出  弹出  未设置对象变量或 With 块变量。

[此贴子已经被作者于2017/8/31 10:24:11编辑过]

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


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

认认真真看3楼。

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 10:40:00 [只看该作者]

Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "AxCAD1"
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)
Dim obj1 = e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls("AxCAD1")

AxCAD1.width = e.Form.Controls("SplitContainer1").panel1.width
AxCAD1.height = e.Form.Controls("SplitContainer1").panel1.height
obj1.ShowMenuBar = False
弹出 引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。
For Each c As object In e.Form.Controls
    MessageBox.Show(c.name)
原来的控件名称显示 正常,新加的控件名称是空的
Next
MessageBox.Show(obj1.name)

若取掉obj1.ShowMenuBar = False,可显示名称为AxCAD1

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


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

Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "AxCAD1"
CType(AxCAD1,System.ComponentModel.ISupportInitialize).BeginInit()

AxCAD1.width = e.Form.Controls("SplitContainer1").panel1.width
AxCAD1.height = e.Form.Controls("SplitContainer1").panel1.height
AxCAD1 .ShowMenuBar = False
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)
CType(AxCAD1,System.ComponentModel.ISupportInitialize).EndInit()


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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 10:59:00 [只看该作者]

Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "AxCAD1"
CType(AxCAD1,System.ComponentModel.ISupportInitialize).BeginInit()

AxCAD1.width = e.Form.Controls("SplitContainer1").panel1.width
AxCAD1.height = e.Form.Controls("SplitContainer1").panel1.height
AxCAD1 .ShowMenuBar = False   ‘不加这一句没什么问题,加上后就出现  引发类型为“System.Windows.Forms.AxHost+InvalidActiveXStateException”的异常。
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)
CType(AxCAD1,System.ComponentModel.ISupportInitialize).EndInit()


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


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

不写在afterload事件,直接写在一个按钮测试

 

Dim AxCAD1 As new AxCAD.AxMxDrawX
AxCAD1.name = "AxCAD1"
CType(AxCAD1,System.ComponentModel.ISupportInitialize).BeginInit()
AxCAD1.width = e.Form.Controls("SplitContainer1").panel1.width
AxCAD1.height = e.Form.Controls("SplitContainer1").panel1.height
e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls.add(AxCAD1)
AxCAD1.ShowMenuBar = False 
CType(AxCAD1,System.ComponentModel.ISupportInitialize).EndInit()


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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 11:46:00 [只看该作者]

写在按钮中正常,写在afterload事件中就不正常,该如何处理

 回到顶部
总数 28 1 2 3 下一页