2016-05-27 21 views
0

Visio 2013および2015用のカスタムVSTO AddInを作成しようとしていますが、アンカービューの項目のリストがあります。ユーザーがリストからアイテムをドラッグしてVisioページにドロップできるようにしたいと考えています。ドロップしたら、ドロップのx座標とy座標を使用して、特定の形状とコネクターを作成することができます。私はこれを行う方法を示す記事やサンプルを見つけることができませんでした。私が見つけた唯一の参考資料は、Word 2010でこれを達成する方法でしたが、VisioでWordを使用するために使用した手法を手に入れることができませんでした。Visio VSTOドラッグアンドドロップ

ご迷惑をおかけして申し訳ございません。

答えて

0

これは実際にはそれほど複雑ではありません。この(私の)かなり古いポストは、メモリストリームから形状を削除する方法を説明します

http://unmanagedvisio.blogspot.co.at/2010/05/persisting-visio-shapes.html

あなたはステンシル上の既存のマスターから落下する場合(以下のコードは、それはかもしれない、「基本図形」を前提としていDoDragDropはビルトイン関数です(以下のコードはwinformsを前提としていますが、別のフレームワークでは別のアプローチが必要かもしれません)とにかく基本的なアイデアは、 "Master" visioオブジェクトがIDataObjectインターフェイスを実装しているので、ドラッグアンドドロップを行うには十分です。

リストビューに2つのアイテム、「Triang le "と" Circle "の場合、" triangle "アイテムをドラッグすると、それぞれ"三角形 "の形状と"円 "の円が得られるはずです。

private void listView1_ItemDrag(object sender, ItemDragEventArgs e) 
    { 
     var item = (ListViewItem) e.Item; 

     var app = Globals.ThisAddIn.Application; 

     var myStencil = app.Documents.OpenEx("BASIC_M.VSS", 
      (short)VisOpenSaveArgs.visOpenDocked | (short)VisOpenSaveArgs.visOpenRO); 

     var masterToDrag = myStencil.Masters[item.Text]; 
     var data = new DataObject(masterToDrag); 
     DoDragDrop(data, DragDropEffects.Copy); 
    } 
関連する問題