C# 操作PPt,去掉文本框的边框
using System; using System.Collections.Generic; using System.Linq; using System.Text; using OFFICECORE = Microsoft.Office.Core; using POWERPOINT = Microsoft.Office.Interop.PowerPoint; using System.Windows; using System.Collections; using System.Windows.Forms; using System.IO; using System.ComponentModel; using System.Data; using System.Drawing; namespace pptWrite { /// <summary> /// PPT文档操作实现类. /// </summary> public class OperatePPT { #region=========基本的参数信息======= POWERPOINT.Application objApp = null; POWERPOINT.Presentation objPresSet = null; POWERPOINT.SlideShowWindows objSSWs; POWERPOINT.SlideShowTransition objSST; POWERPOINT.SlideShowSettings objSSS; POWERPOINT.SlideRange objSldRng; bool bAssistantOn; #endregion #region===========操作方法============== /// <summary> /// 打开PPT文档并播放显示。 /// </summary> /// <param name="filePath">PPT文件路径</param> public void PPTOpen(string filePath) { //防止连续打开多个PPT程序. if (this.objApp != null) { return; } try { objApp = new POWERPOINT.Application(); objApp.Visible = OFFICECORE.MsoTriState.msoTrue; //以非只读方式打开,方便操作结束后保存. objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoFalse); } catch (Exception ex) { MessageBox.Show("错误:" + ex.Message.ToString()); this.objApp.Quit(); } } /// <summary> /// 自动播放PPT文档. /// </summary> /// <param name="filePath">PPTy文件路径.</param> /// <param name="playTime">翻页的时间间隔.【以秒为单位】</param> public void PPTAuto(string filePath, int playTime) { //防止连续打开多个PPT程序. if (this.objApp != null) { return; } objApp = new POWERPOINT.Application(); objPresSet = objApp.Presentations.Open(filePath, OFFICECORE.MsoTriState.msoCTrue, OFFICECORE.MsoTriState.msoFalse, OFFICECORE.MsoTriState.msoFalse); // 自动播放的代码(开始) int Slides = objPresSet.Slides.Count; int[] SlideIdx = new int[Slides]; for (int i = 0; i < Slides; i++) { SlideIdx[i] = i + 1; }; objSldRng = objPresSet.Slides.Range(SlideIdx); objSST = objSldRng.SlideShowTransition; //设置翻页的时间. objSST.AdvanceOnTime = OFFICECORE.MsoTriState.msoCTrue; objSST.AdvanceTime = playTime; //翻页时的特效! objSST.EntryEffect = POWERPOINT.PpEntryEffect.ppEffectCircleOut; //Prevent Office Assistant from displaying alert messages: bAssistantOn = objApp.Assistant.On; objApp.Assistant.On = false; //Run the Slide show from slides 1 thru 3. objSSS = objPresSet.SlideShowSettings; objSSS.StartingSlide = 1; objSSS.EndingSlide = Slides; objSSS.Run(); //Wait for the slide show to end. objSSWs = objApp.SlideShowWindows; while (objSSWs.Count >= 1) System.Threading.Thread.Sleep(playTime * 100); this.objPresSet.Close(); this.objApp.Quit(); } /// <summary> /// PPT下一页。 /// </summary> public void NextSlide() { if (this.objApp != null) try { this.objPresSet.SlideShowWindow.View.Next(); } catch { } } /// <summary> /// PPT上一页。 /// </summary> public void PreviousSlide() { if (this.objApp != null) this.objPresSet.SlideShowWindow.View.Previous(); } private int PageNum() { return objPresSet.Slides.Count; } public void SetLine() { int num = PageNum(); for (int i = 0; i < num; i++) { if (i > 2) { objSldRng= objPresSet.Slides.Range(i); objSldRng.Select(); try { objSldRng.Application.ActiveWindow.Selection.SlideRange.Shapes.SelectAll(); objSldRng.Application.ActiveWindow.Selection.ShapeRange.Line.Visible = OFFICECORE.MsoTriState.msoFalse; } catch { } //MessageBox.Show("" + i.ToString()); //NextSlide(); } } } /// <summary> /// 关闭PPT文档。 /// </summary> public void PPTClose() { //装备PPT程序。 if (this.objPresSet != null) { //判断是否退出程序,可以不使用。 //objSSWs = objApp.SlideShowWindows; //if (objSSWs.Count >= 1) //{ //if (MessageBox.Show("是否保存修改的笔迹!", "提示", MessageBoxButtons.OKCancel) == DialogResult.OK) this.objPresSet.Save(); //} //this.objPresSet.Close(); } if (this.objApp != null) this.objApp.Quit(); GC.Collect(); } #endregion } }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace pptWrite { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click( object sender, EventArgs e) { ylbasicpub.YLCover.selectfilename( this .textBox1, "*.ppt|*.ppt" ); } private void Form1_Load( object sender, EventArgs e) { ylbasicpub.YLCover.loadXml( this ); } private void Form1_FormClosed( object sender, FormClosedEventArgs e) { ylbasicpub.YLCover.SaveXml( this ); } private void button2_Click( object sender, EventArgs e) { OperatePPT pOperatePPT = new OperatePPT(); pOperatePPT.PPTOpen( this .textBox1.Text); pOperatePPT.SetLine(); //pOperatePPT.PPTClose(); } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理