C#进行Visio二次开发之知识点考核试题
本人做过多年的Visio二次开发,根据个人的经验总结及项目积累,写了一些小小的随笔文章(具体可参考《
伍华聪的Visio二次开发文章
》,上月有幸给深圳一个团队做了两天的Visio培训,当了一回客座老师,重新拉起Visio二次开发这面大旗,个人觉得这也是一次比较难忘的一次经历。
本次准备的培训,除了全面介绍Visio的相关知识和概念,还以实战开发的方式加深Visio二次开发的知识掌握,另外还通过试题来考核各个学生的掌握情况,本文主要是介绍我根据自己一直以来的Visio开发经验所得,准备的Visio二次开发试题,并提供相应的解答分析,希望大家批评指正,一起沟通交流。
虽然Visio已经在各行各业应用的很广,不过这两年来关注的博客文章,Visio二次开发方面的文章除了我零星写的一些,其他同行基本上没有文章涉及(可能是没有时间写这方面经验),虽然目前已经很少从项目上去升华、研究Visio二次开发方面的工作(除非又有一些特殊的项目合作需要)。因此,如果这方面我自己有一些新的心得或者资料,我是很乐意和大家一起分享。
答案: 对。
答案:错,可以通过代码修改,增加、修改、删除均可。
答案:对。
答案:错,图标也一样可以修改。
答案:对。
答案:错,数值型是不需要加双引号的。
答案:错,均可以。
答案:错,Web方式只能查看,无法实现修改。
答案:错,SRC只是关闭对引用文件的操作,不会影响文档的显示,还是显示原来的文档。
答案:对。
答案:错,第一种没有其他菜单。
答案:错误,他们都可以通过代码增加列表项目,只是后者可以选择已有的,也可以输入其他内容。
答案:对。
答案:错,更新模具形状属性后,需要手动更新图纸的信息。
答案:对。
答案:对。
答案:对。
题,总分50分)
例子要求:
1、打开指定的Visio及模具文件,可以保存Visio文件,导出Visio为CAD。
5、可以打开、隐藏模具文件窗口。
答案:
打开相关的Visio文件,并在图纸上右键,显示右键菜单【测试】
响应菜单操作后,界面弹出对话框,提示相关的信息,如下图。
例子关键的代码如下所示:
void
btnOpen_Click(
object
sender, EventArgs e)
{
OpenFileDialog dlg =
new
OpenFileDialog();
dlg.Filter =
"
Visio文件(*.vsd)|*.vsd|所有文件(*.*)|*.*
"
;
dlg.FilterIndex =
1
;
if
(dlg.ShowDialog() == DialogResult.OK)
{
OpenVisio(dlg.FileName);
}
}
private
void
OpenVisio(
string
fileName)
{
VisioUtility.CloseAllStencileDocument(VisApplication);
Marshal.ReleaseComObject(VisApplication);
Marshal.ReleaseComObject(VisDocument.EventList);
Marshal.ReleaseComObject(VisDocument);
Marshal.ReleaseComObject(VisWindow);
GC.Collect();
Thread.Sleep(
100
);
this
.axDrawingControl1.Src = fileName;
this
.axDrawingControl1.Src =
""
;
InitEventSink(VisApplication, VisDocument);
this
.axDrawingControl1.Document.Saved =
true
;
List<
string
> filePaths = GetFilePaths(gStencileFileBasePath);
foreach
(
string
stencil
in
filePaths)
{
VisioUtility.OpenStencilRead(VisApplication.Documents, stencil);
}
AddContextMenu();
}
private
void
AddContextMenu()
{
Visio.Page page = VisioUtility.GetPage(VisDocument,
"
馈线图
"
);
bool
isEnable =
true
;
if
(page !=
null
)
{
//
清除所有相关的菜单事件
page.PageSheet.DeleteSection((
short
)VisSectionIndices.visSectionAction);
//
加入新的菜单
VisioUtility.AddRightMouseAction(page.PageSheet,
"
\"测试\"
"
,
"
RUNADDONWARGS(\"QUEUEMARKEREVENT\", \"/Drawing=测试\")
"
,
isEnable,
true
,
false
,
false
,
true
,
true
);
}
}
下面提供本次例子的源码,希望对大家学习研究有所帮助:
Visio二次开发实战例子Demo(源码)