基于vsto在visio中画一条线。
时间: 2023-05-24 16:04:37 浏览: 200
以下是基于VSTO在Visio中画一条简单线的示例代码:
1. 首先,在Visual Studio创建一个新的VSTO项目。
2. 在解决方案资源管理器中,右键单击项目名称,选择“添加” > “新项” > “Visio 2010向导”。
3. 选择“空白Visio插件”,名称为“DrawLine”。
4. 双击“ThisAddIn.cs”,在“Startup”方法中添加以下代码:
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
Visio.Application visioApplication = this.Application;
visioApplication.MarkerEvent += new Visio.EApplication_MarkerEventEventHandler(visioApplication_MarkerEvent);
}
5. 在“ThisAddIn.cs”文件的末尾添加以下代码,以响应Visio事件并在画布上绘制线条:
// MarkerEvent handler
void visioApplication_MarkerEvent(Visio.Application app, int SequenceNum, string ContextString)
{
try
{
Visio.Document visioDocument = app.ActiveDocument;
Visio.Page visioPage = visioDocument.Pages[1];
Visio.Shape startShape = visioPage.Shapes.ItemFromID(1);
Visio.Shape endShape = visioPage.Shapes.ItemFromID(2);
Visio.Shape connector = visioPage.Drop(app.ConnectorToolDataObject, 0, 0);
connector.CellsC["BeginX"].GlueTo(startShape.CellsC["PinX"]);
connector.CellsC["BeginY"].GlueTo(startShape.CellsC["PinY"]);
connector.CellsC["EndX"].GlueTo(endShape.CellsC["PinX"]);
connector.CellsC["EndY"].GlueTo(endShape.CellsC["PinY"]);
visioPage.Application.ActiveWindow.Zoom = visioPage.Application.ActiveWindow.Zoom + 0.01; // just zoom in a bit to show the line
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
6. 运行项目并在Visio中绘制两个形状。然后,在“格式”选项卡上选择“连接线”,然后选择VSTO插件选项卡。单击“绘制线条”按钮,两个形状之间就会出现一条线。
以上就是基于VSTO在Visio中画一条线的示例代码。您可以根据您的需要进行修改和扩展。
阅读全文