2

我正在做一个项目,我需要在 Windows 窗体中嵌入一个 PowerPoint 查看器。我正在使用以下 activeX 控件:http ://www.daolnwod.com/free-powerpoint-viewer-activex.html 。

我激活了要与表单设计器工具箱一起使用的控件并将其拖到我的表单中。然后我将 InitializeComponent() 方法中的代码编辑为以下内容:

this.axPowerPointViewer1 = new AxPOWERPOINTVIEWERLib.AxPowerPointViewer();

((System.ComponentModel.ISupportInitialize)(this.axPowerPointViewer1)).BeginInit();
this.axPowerPointViewer1.Enabled = true;
this.axPowerPointViewer1.Location = new System.Drawing.Point(0, 0);
this.axPowerPointViewer1.Name = "axPowerPointViewer1";
this.axPowerPointViewer1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axPowerPointViewer1.OcxState")));
this.axPowerPointViewer1.Size = new System.Drawing.Size(925, 573);
this.axPowerPointViewer1.TabIndex = 5;
//this.axPowerPointViewer1.CreateControl();
this.Controls.Add(this.axPowerPointViewer1);
((System.ComponentModel.ISupportInitialize)(this.axPowerPointViewer1)).EndInit();

在我的 Forms 构造函数中

public Form1()
{
    InitializeComponent();

    axPowerPointViewer1.Show();
    bool loaded = axPowerPointViewer1.LoadFile(@"C:\Debug\test2.ppt"); // loaded = false

    string z = axPowerPointViewer1.GetSlideCount().ToString();
}

但是,当我打开表单时,什么都没有出现。代码可以编译,但我看不到我一直在处理的测试幻灯片。我为“上一张”和“下一张”幻灯片创建了 2 个按钮,但调试每次都会给我一个 0 的幻灯片位置,所以一定有问题,我似乎找不到它。


更新

问题已解决。看来我没有调用 axPowerPointviewer1.InitControl()。它仍然有一些麻烦,有时它不会在启动时显示第一张幻灯片。如果事情继续顺利进行,我会发布这个问题的答案。

4

1 回答 1

2

问题在于初始化控件。为了使控件充分发挥作用,您需要调用 InitControl() 方法,因此调用以下代码应该可以使程序正常工作:

    private void Form1_Load(object sender, EventArgs e)
    {
        this.axPowerPointViewer1.InitControl();
    }
于 2012-09-19T14:48:39.540 回答