Office中国论坛/Access中国论坛
标题:
【OneKeyTools源代码分享3】特殊选中
[打印本页]
作者:
只为设计
时间:
2016-2-24 20:22
标题:
【OneKeyTools源代码分享3】特殊选中
本帖最后由 只为设计 于 2016-2-25 20:25 编辑
第三篇分享是OneKeyTools中的特殊选中功能,以“按类型”为例。之所以用这个案例,是因为涉及到Llist的基本运用。新手学习编程,一般是从if和for的掌握开始,然后学foreach,再接下来就是Array或list,这是设计的切身体会。Array或List如何结合具体运用是困扰新手的一个难题。
【全部代码】↓
PowerPoint.Selection sel = app.ActiveWindow.Selection;
if (sel.Type != PowerPoint.PpSelectionType.ppSelectionShapes)
{
MessageBox.Show("本功能可同时选中当前页面中与所选形状相同类型的形状");
}
else
{
PowerPoint.Slide slide = app.ActiveWindow.View.Slide;
List<string> list = new List<string>();
foreach (PowerPoint.Shape item in slide.Shapes)
{
if (item.Type == shape.Type)
{
list.Add(item.Name);
}
}
int count = list.Count;
string[] arr = new string[count];
for (int i = 0; i < count; i++)
{
arr[i]= list[i];
}
slide.Shapes.Range(arr).Select();
}
复制代码
【说明】
要实现多选,可以用slide.Shapes.Range(Array)的方法。这里的Array是图形的名称(Name)的数组,Name是string字符串类型。可问题出现了:使用数组需要定义数组的长度,但我们往往是不可知的。所以需要用List作为中转(List的新建无需定义长度)。
所以我们先定义一个List:
List<string> list = new List<string>()
。然后加一个判断:
if (item.Type == shape.Type)
。是的话,就
list.Add(item.Name)
,这样就把与所选图形类型相同的所有形状的Name添加到了List里。
接着通过list.Count获取个数:
int count = list.Count
。再定义Array:
string[] arr = new string[count]
。
然后通过for循环把list里的数据导入到Array里:
arr[]
= list[]
。
最后选中所有满足条件的形状:
slide.Shapes.Range(arr).Select()
。
上一篇:
【OneKeyTools源代码分享2】插入矩形
下一篇:
【OneKeyTools插件教程1】印章字和粉笔字
作者:
Xy平面坐标系
时间:
2016-2-24 20:36
老爷棒棒哒,蟹蟹分享~
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3