Managed Objectarx 自定义\双击动作\(双击打开自定义Form)

 

 

Ref: Autocad2008 Help + Objectarx for 2008

1.参考编辑属性命令:eattedit,实现双击属性块执行自定义宏命令ShowDeviceAtt。

 

 

 [CommandMethod( " dblclick " )]
        
public   void  doubleClick()
        {
           
string  mgName  =   " mxMenuGroups " ; // 宏组
             string  mmName  =   " DblblockMacro " ; //
             string  command  =   " ShowDeviceAtt " // 对应属性块编辑查看宏命令 
             string  dblclickEID  =   " DCU_myBlockdblclick " ;
            
// 菜单宏
            MenuMacro oMenuMacro1  =  cs.FindMenuMacro(mmName);
            
if  (oMenuMacro1  ==   null )
            {
                
// 先自定义宏组
                MacroGroup oMacroGroup  =  cs.MenuGroup.FindMacroGroup(mgName);
                
if  (oMacroGroup  ==   null )
                    oMacroGroup 
=   new  MacroGroup(mgName, cs.MenuGroup);
                oMenuMacro1 
=   new  MenuMacro(oMacroGroup, mmName, command,  " DblblockMacro " , MacroType.Any);
            }
            
foreach  (DoubleClickAction dblclick  in  cs.MenuGroup.DoubleClickActions)
            {
                
if  (dblclick.ElementID  ==  dblclickEID)
                {
                    ed.WriteMessage(
" 已经添加属性块双击自定义动作 " );
                    
return ;
                }
            }
            DoubleClickAction dblClickAction 
=   new  DoubleClickAction(cs.MenuGroup,  " mxBloc dblclick  " - 1 ); // 定义双击动作
            dblClickAction.Description  =   " 元件属性编辑查看 " ; // 说明
            dblClickAction.ElementID  =  dblclickEID; // 元素ID
            dblClickAction.DxfName  =   " ATTBLOCKREF " ; // (双击)对象名称

            DoubleClickCmd dblClickCmd 
=   new  DoubleClickCmd(dblClickAction); // 双击命令
            dblClickCmd.MacroID  =  oMenuMacro1.ElementID; // 宏ID

            dblClickAction.DoubleClickCmd 
=  dblClickCmd;
            saveCui();
            ed.WriteMessage(
" 属性块双击自定义动作添加成功 " );

        }

 

2.参考 ObjectARX 2008\samples\dotNet\CuiSamp例子‘修改Polyline双击命令’,即可实现属性块双击自定义

 

[CommandMethod( " dblclick " )]
public   void  doubleClick()
{
// 自定义宏命令
MacroGroup oMacroGroup  =   new  MacroGroup( " mxMenuGroups " , cs.MenuGroup);
MenuMacro oMenuMacro1 
=   new  MenuMacro(oMacroGroup,  " DblblockMacro " " ShowDeviceAtt " " DblblockMacro " , MacroType.Any);  // ShowDeviceAtt为对应属性块编辑查看宏命令 

DoubleClickAction dblClickAction 
=   new  DoubleClickAction(cs.MenuGroup,  " mxBloc dblclick  " - 1 ); // 定义双击动作
dblClickAction.Description  =   " 元件属性编辑查看 " ; // 说明
dblClickAction.ElementID  =   " DCU_myBlockdblclick " ; // 元素ID
dblClickAction.DxfName  =   " ATTBLOCKREF " ; // (双击)对象名称

DoubleClickCmd dblClickCmd 
=   new  DoubleClickCmd(dblClickAction); // 双击命令
dblClickCmd.MacroID  =  oMenuMacro1.ElementID; // 宏ID

dblClickAction.DoubleClickCmd 
=  dblClickCmd;

}

 

说明:执行dblclick、savecui ,只需要第一次使用时注册双击命令即可,适合在安装包中注册与恢复。

测试打开属性块编辑窗口2种方式:
1.双击属性块
2.输入命令ShowDeviceAtt=》选择属性块
体现Autocad自身特性,用户易使用。


Managed Objectarx 自定义\双击动作\(双击打开自定义Form)_第1张图片

Managed Objectarx 自定义\双击动作\(双击打开自定义Form)_第2张图片

 

你可能感兴趣的:(Managed Objectarx 自定义\双击动作\(双击打开自定义Form))