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


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

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

帅哥哟,离线,有人找我吗?
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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  3楼 | 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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  4楼 | 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

 回到顶部
帅哥哟,离线,有人找我吗?
lzzhx
  5楼 | 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()


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


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

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

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 13:53:00 [显示全部帖子]

老师:还有一个问题

在窗体中嵌入一个CAD控件,打开窗体后在CAD控件中打开一个.dwg文件,已经正常,但关闭窗体后,这个打开的CAD文件和控件还继续存在,并没有随着窗体的关闭而关闭,请问老师该如何处理

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/8/31 17:10:00 [显示全部帖子]

谢谢老师

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/1 18:19:00 [显示全部帖子]

那就不要在afterLoad事件写。

timertick事件写代码 http://www.foxtable.com/webhelp/scr/1301.htm

e.Form.TimerEnabled = False
Dim obj = e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls("AxCAD1")
obj.ShowMenuBar = False

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


加好友 发短信
等级:四尾狐 帖子:995 积分:6712 威望:0 精华:0 注册:2015/1/12 22:12:00
  发帖心情 Post By:2017/9/1 18:24:00 [显示全部帖子]

那就不要在afterLoad事件写。

timertick事件写代码 http://www.foxtable.com/webhelp/scr/1301.htm

e.Form.TimerEnabled = False
Dim obj = e.Form.Controls("SplitContainer1").panel1.BaseControl.Controls("AxCAD1")
obj.ShowMenuBar = False

这段代码在这2个事件中执行结果不一样的原因是什么

我在2个项目中中分别加了这个控件,关于这个控件的一些代码完全一样,但一个项目执行正常,另一个项目就会弹出错误

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

找不到不同的地方,就是执行错误,请老师给解答一下
[此贴子已经被作者于2017/9/1 18:24:39编辑过]

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