您的位置:首页 > 其它

使用Visio 2003 Drawing Control开发应用(补1) 【转】

2010-03-17 10:56 387 查看
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位置发生变化我们就可控了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  visio