[讨论]vb.net的事件处理
www.dimcax.com
[讨论]vb.net的事件处理
原理,在vba的窗体激活事件中改变users系统变量,vb.net接收该事件将文档级事件处理激活到当前文档
总觉得不太妥当,有好点的办法么?
vb.net - module mtlscad代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28private withevents pacadapp as acadapplication = application.acadapplication
private withevents pacaddoc as acaddocument = pacadapp.activedocument
private sub pacadapp_sysvarchanged(byval sysvarname as string, byval newval as object) handles pacadapp.sysvarchanged
if sysvarname.toupper = "*users5" then pacaddoc = pacadapp.activedocument
end sub
private sub pacaddoc_begindoubleclick(byval pickpoint as object) handles pacaddoc.begindoubleclick
dim ss as acadselectionset
ss = pacaddoc.pickfirstselectionset
if ss.count = 0 then
exit sub
elseif ss.count = 1 then
select case ss.item(0).entityname
case "acdbblockreference"
if ss.item(0).hasattributes then
pacaddoc.sendcommand("_.eattedit" & vbcr & vbcr & vbcr)
end if
case "acdbtext", "acdbmtext"
pacaddoc.sendcommand("_.ddedit" & vbcr & vbcr)
case else
pacaddoc.sendcommand("_.properties" & vbcr)
end select
else
pacaddoc.sendcommand("_.properties" & vbcr)
end if
end sub
vba - thisdrawing代码
private sub acaddocument_activate()
dim puser as string
puser = thisdrawing.getvariable("users5")
thisdrawing.setvariable "users5", str(now)
thisdrawing.setvariable "users5", puser
end sub