使用Visio 2003 Drawing Control开发应用(补1)
Visio的DrawingControl暴露出来很多事件,一般来说是够用了。可是有时候,我们还觉得这些事件不够用,比如说:
我们想在拖动某个形状时触发事件来处理,可是直接从drawingcontrol里面是没有这样的事件的,查了查也没有这样的事件。
于是,我可以这样做。
Visio.Shape shape = this.axDrawingControl1.Window.Application.ActivePage.Shapes[1];
shape.TextChanged +=new Microsoft.Office.Interop.Visio.EShape_TextChangedEventHandler(shape_TextChanged);
shape.CellChanged +=new Microsoft.Office.Interop.Visio.EShape_CellChangedEventHandler(shape_CellChanged);
当然真正应用的时候,这个shape不能像我上面那样取,这里注册了两个事件,一个是该Shape的文本发生改变的事件,一个是Cell改变的事件,在事件处理中
private void shape_CellChanged(Microsoft.Office.Interop.Visio.Cell Cell)
{
if(Cell.Name == "PinX" || Cell.Name == "PinY")
MessageBox.Show("LocationChanged");
}
这样,该Shape位置发生变化我们就可控了。
posted on 2004-10-18 15:31 什么都不知道 阅读(13824) 评论(141) 编辑 收藏 举报