0

AutoCAD2012でPalettSetを使用して.NetListViewコントロールをホストしています。ListViewアイテムのTagプロパティは、*。dwgファイルへのパスを保持します。Item.Tagプロパティを使用してdwgファイルを選択し、AutoCADの描画領域にドロップしながら、ListViewからドラッグしたいのですが、通常の*.dwgファイルとドラッグのように描画がそこに挿入されると期待しています。描画領域にドロップします

ジグクラスを使用してブロックをドラッグアンドドロップすることについて読み、いくつかのサンプルコードを試しましたが、組み込みのサークルクラスを使用しました。

最初にdwgファイルからブロックを読み取り、次にマウスに接続してドラッグアンドドロップ操作を行う必要がありますか?

私は実際に混乱しています...

誰かが私を案内してもらえますか?本当にあなたの返事をいただければ幸いです...

本当にありがとう....

ファルク

4

1 に答える 1

0

最終的に私はこれを解決しましたが、いくつかの長い調査とコードテストの後で。* .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はコマンド文字列を取得しますが、ユーザー入力を待ちます。

これが誰かにとって有益であることを願っています。

よろしくFarrukh

于 2012-07-04T11:13:48.613 に答える