如何使用C#操作幻灯片

 更新时间:2022年05月06日 15:07:14   作者:LearningHard  
一般大家经常会用PPT遥控翻页笔来遥控幻灯片,本文确为大家介绍了使用C#制作一个遥控幻灯片,感兴趣的朋友可以参考下

记得老师讲课的时候,经常会用PPT遥控翻页笔来遥控幻灯片来给我们讲课,当时觉得非常有趣,由于这段时间接触了VSTO相关的开发,了解到了Office的相关产品都公开了一些API来让我们对Office产品进行二次开发,这时候我就想,能不能用PowerPoint公开的对象来制作一个遥控幻灯片的程序呢?在本专题就向大家介绍下这个小工具的实现思路和效果。

实现思路

1、既然要实现的程序是遥控幻灯片,这样我们就需要先获得幻灯片应用程序的,在PowerPoint对象模型中,Microsoft.Office.Interop.PowerPoint.Application代表Powerpoint应用程序,这点和Word、Excel和Outlook都是一样的。
2、获得了幻灯片应用程序对象之后,之后我们就需要获得幻灯片对象,因为我们遥控的是幻灯片,在PowerPoint对象模型中也提供了幻灯片对象,即Microsoft.Office.Interop.PowerPoint.Slide。由于幻灯片又是存在于演示文稿中的,所以我们要想获得幻灯片对象,就需要先获得演示文稿对象,Microsoft.Office.Interop.PowerPoint.Presentation 就是代表演示文稿对象。
3、获得幻灯片对象之后,我们就可以利用幻灯片对象的Select方法来进行幻灯片的切换,然而在阅读模式的情况下,不能用Select方法来进行翻页,此时需要另一种方式来实现,即调用 Microsoft.Office.Interop.PowerPoint.SlideShowView对象的First,Next,Last,Previous方法来进行幻灯片翻页

下面一张是阅读模式下程序中实现翻页功能与在幻灯片中的对应关系:

遥控幻灯片程序的实现

有了上面的解释,我们再看下面的实现代码时,相信大家肯定不会觉得有任何难道了,下面就直接贴出部分的实现的代码

/// <summary>
/// 检查是否打开幻灯片程序
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
privatevoid btnCheck_Click(object sender, EventArgs e) 
{ 
// 必须先运行幻灯片,下面才能获得PowerPoint应用程序,否则会出现异常
// 获得正在运行的PowerPoint应用程序
try
  { 
    pptApplication = Marshal.GetActiveObject("PowerPoint.Application") as PPt.Application; 
// 成功获取了PowerPoint程序时,使UI按钮可用
this.btnFirst.Enabled = true; 
this.btnNext.Enabled = true; 
this.btnPrev.Enabled = true; 
this.btnLast.Enabled = true; 
  } 
catch
  { 
    MessageBox.Show("请先启动遥控的幻灯片", "Error", MessageBoxButtons.OKCancel, MessageBoxIcon.Error); 
  } 
if (pptApplication != null) 
  { 
//获得演示文稿对象
    presentation = pptApplication.ActivePresentation; 
// 获得幻灯片对象集合
    slides = presentation.Slides; 
// 获得幻灯片的数量
    slidescount = slides.Count; 
// 获得当前选中的幻灯片
try
    { 
// 在普通视图下这种方式可以获得当前选中的幻灯片对象
// 然而在阅读模式下,这种方式会出现异常
      slide = slides[pptApplication.ActiveWindow.Selection.SlideRange.SlideNumber]; 
    } 
catch
    { 
// 在阅读模式下出现异常时,通过下面的方式来获得当前选中的幻灯片对象
      slide = pptApplication.SlideShowWindows[1].View.Slide; 
    } 
  } 
} 
// 第一页事件
privatevoid btnFirst_Click(object sender, EventArgs e) 
{     
try
  { 
// 在普通视图中调用Select方法来选中第一张幻灯片
    slides[1].Select();     
    slide = slides[1]; 
  } 
catch
  { 
// 在阅读模式下使用下面的方式来切换到第一张幻灯片
    pptApplication.SlideShowWindows[1].View.First(); 
    slide = pptApplication.SlideShowWindows[1].View.Slide; 
  } 
} 

下面就看看该遥控程序的运行效果是如何的:

小结

到这里本专题的介绍就结束了,其实本程序最好是放在手机客户端,这样我们就可以利用手机来对我们的幻灯片进行翻页了,这样就和激光笔的效果就是一样的了,这里就给大家先提供一个思路吧,我相信如果要在手机客户端实现的话,肯定就需要蓝牙编程的技术或者WiFi编程的技术来获取笔记本电脑的幻灯片应用程序,只要我们成功在手机客户端获取了PowerPoint应用程序对象的话,后面的实现过程就和本程序的实现方式就基本一样的,然而我们同时打开笔记本的蓝牙和手机的蓝牙(也可以利用WiFi),这样我们就可以轻松实现用手机来遥控我们演讲文稿了。

以上就是本文给大家分享的使用C#制作幻灯片的全过程,希望大家可以喜欢。

相关文章

  • C#窗体间常用的几种传值方式及委托与事件详解

    C#窗体间常用的几种传值方式及委托与事件详解

    这篇文章主要给大家介绍了关于C#窗体间常用的几种传值方式及委托与事件的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用小程序具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-06-06
  • C#多线程学习之(二)操纵一个线程的方法

    C#多线程学习之(二)操纵一个线程的方法

    这篇文章主要介绍了C#多线程学习之操纵一个线程的方法,实例分析了C#中线程的使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-04-04
  • C#常用排序方式总结

    C#常用排序方式总结

    在最近的项目中经常会对C#中的数据进行排序,对于基本数据类型,其排序方式比较简单,只需要调用内置算法即可实现,但对于自定义数据类型以及自定义排序规则的情况实现起来就比较麻烦,所以在本文章中将详细介绍一下在中C#中如何对数据进行排序,需要的朋友可以参考下
    2024-01-01
  • Unity3D生成一段隧道网格的方法

    Unity3D生成一段隧道网格的方法

    这篇文章主要为大家详细介绍了Unity3D生成一段隧道网格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-08-08
  • C#实现将Doc文档转换成rtf格式的方法示例

    C#实现将Doc文档转换成rtf格式的方法示例

    这篇文章主要介绍了C#实现将Doc文档转换成rtf格式的方法,结合实例形式分析了C#针对word文件的读取及文档格式转换相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • C#版Windows服务安装卸载小工具

    C#版Windows服务安装卸载小工具

    这篇文章主要为大家推荐了一款C#版Windows服务安装卸载小工具,小巧灵活的控制台程序,希望大家喜欢,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • C#实现冒泡排序算法的代码示例

    C#实现冒泡排序算法的代码示例

    冒泡排序即是对数组每次轮循出最大数或最小数放在队尾,这里我们来看一下C#实现冒泡排序算法的代码示例,需要的朋友可以参考下
    2016-07-07
  • C#值类型、引用类型中的Equals和==的区别浅析

    C#值类型、引用类型中的Equals和==的区别浅析

    这篇文章主要介绍了C#值类型、引用类型中的Equals和==的区别浅析,本文分别对C#值类型和引用类型中的Equals和==做了讲解和给出了实例,需要的朋友可以参考下
    2015-01-01
  • C#强制转换和尝试转换的方法

    C#强制转换和尝试转换的方法

    这篇文章主要为大家详细介绍了C#强制转换和尝试转换的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-09-09
  • c#的params参数使用示例

    c#的params参数使用示例

    这篇文章主要介绍了c#的params参数使用示例,需要的朋友可以参考下
    2014-04-04

最新评论