我的.Net ListView控件在AutoCAD 2012中使用PalettSet托管。ListView项的Tag属性保存到*.dwg文件的路径。我希望从ListView中拖动,同时使用Item.Tag属性选择dwg文件,并将其拖放到AutoCAD绘图区域,我预计结果将是绘图将插入到那里,就像我们通常拖动*.dwg文件并将其放到绘图区域一样
我读过关于使用Jig的拖放块的文章,我尝试了一些示例代码,但是使用了内置的循环类。
,我必须先从dwg文件中读取块,然后附加到鼠标并执行拖放操作吗?
我真的很困惑..。
有人能指点我吗?非常感谢你的回复..。
谢谢一堆..。
法鲁克
发布于 2012-07-04 11:13:48
最后我解决了这个问题,但是经过了一些长时间的研究和代码测试。我编写了代码(通过阅读多个博客),这些代码可以将*.dwg文件中的块插入到当前的AutoCAD文档中,但随后我意识到许多块包含属性,有些块在添加dwg时可能需要处理。
最后,我决定调用AutoCAD的INSERT命令,而不是编写自己的代码。这是其他人的密码。
请注意,这里我是一个例子,而硬编码dwg文件名和路径,而在我的实际应用程序中,DWG文件路径将从ListBox.Tag属性读取。
[CommandMethod("InsertDWG")]
static public void SendCmd()
{
string DWGFile = @"D:\sym\1047.DWG";
string InsertCmd = @"_.-INSERT " + DWGFile + '\r' + '\n';
Document doc = Application.DocumentManager.MdiActiveDocument;
doc.SendStringToExecute(InsertCmd, true, false, false);
}注释:使用SendStringToExecute()方法保留'\r‘+ '\n’(将充当Enter或回车),或者AutoCAD将获得命令字符串,但将等待用户输入。
希望这对某人有好处。
向法鲁克问好
https://stackoverflow.com/questions/11272880
复制相似问题