问题
Is it possible to Embed a PowerPoint Viewer into a C# Windows Form?
I am currently use the following code:
objApp = new PowerPoint.Application();
//objApp.Visible = MsoTriState.msoTrue;
objPresSet = objApp.Presentations;
objPres = objPresSet.Open(ppsAction.FileInfo.FullName, MsoTriState.msoTrue, MsoTriState.msoTrue, MsoTriState.msoFalse);
objSlides = objPres.Slides;
//Run the Slide show
objSSS = objPres.SlideShowSettings;
objSSS.ShowType = Microsoft.Office.Interop.PowerPoint.PpSlideShowType.ppShowTypeSpeaker;
objSSS.LoopUntilStopped = MsoTriState.msoTrue;
objSSS.Run();
WindowWrapper handleWrapper = new WindowWrapper(objPres.SlideShowWindow.HWND);
SetParent(handleWrapper.Handle, this.ApplicationPanel.Handle);
this.ApplicationPanel.Visible = true;
objPres.SlideShowWindow.Height = ApplicationPanel.Height;
objPres.SlideShowWindow.Width = ApplicationPanel.Width;
objPres.SlideShowWindow.Top = 0;
objPres.SlideShowWindow.Left = 0;
It shows the viewer on the form but the placement and sizing is wrong. How would one size and place it correctly.
Another option:
I have encountered the Aximp.exe application meant to be used for showing ActiveX controls on the Win Forms in C#. How would I use this with the PPT Viewer?
回答1:
See this link. You can also display the ppt in a WebBrowser control. This might also be useful.
回答2:
Thanks for good links, http://support.microsoft.com/kb/304662 has useful info... That helped me :)
回答3:
For placement change the objPres.SlideShowWindow.Top
to 10 as example and objPres.SlideShowWindow.Left
to 12 so the upper left corner of the slide will be at (12,10) where left move it horizontal and the top move it down vertically.
来源:https://stackoverflow.com/questions/1259369/embed-powerpoint-viewer-in-c-sharp-win-form