Witam.
Próbuje napisać w C# programik otwierający kilka PDF'ów na kolejnych zakładkach.
Mam coś takiego:
TabControl MainTabControl;
TabPage[] MainTabPages;
AxAcroPDFLib.AxAcroPDF[] PDFViewers;
MainTabControl = new TabControl();
Controls.Add(MainTabControl);
MainTabControl.Dock = DockStyle.Fill;
MainTabPages = new TabPage[5];
PDFViewers = new AxAcroPDFLib.AxAcroPDF[5];
for (int i = 0; i < 1; i++)
{
MainTabPages[i] = new TabPage();
MainTabControl.Controls.Add(MainTabPages[i]);
MainTabPages[i].Text = "Zakładka " + (i+1).ToString();
PDFViewers[i] = new AxAcroPDFLib.AxAcroPDF();
MainTabPages[i].Controls.Add(PDFViewers[i]);
PDFViewers[i].Dock = DockStyle.Fill;
PDFViewers[i].LoadFile(@"d:\test.pdf");
}
W takiej postaci kod działa dobrze, tworzy się jedna zakładka i otwiera na niej test.pdf.
Jednak jeśli zmienię warunek np na i < 3 program zwraca błąd.
An unhandled exception of type 'System.Windows.Forms.AxHost.InvalidActiveXStateException' occurred in AxInterop.AcroPDFLib.dll
Program wykłada się na LoadFile
- próbowałem otwierać dwa inne pliki, również nie działa.
Nie wiem dlaczego i co z tym zrobić....
Gdzie popełniłem błąd ?
Coś mu te zakładki "nie pasują" bo coś takiego już działa:
for (int i = 0; i < 4; i++)
{
PDFViewers[i] = new AxAcroPDFLib.AxAcroPDF();
Controls.Add(PDFViewers[i]);
switch (i)
{
case 1: PDFViewers[i].Dock = DockStyle.Left; break;
case 2: PDFViewers[i].Dock = DockStyle.Right; break;
case 3: PDFViewers[i].Dock = DockStyle.Top; break;
case 4: PDFViewers[i].Dock = DockStyle.Bottom; break;
}
PDFViewers[i].LoadFile(@"d:\test1.pdf");
}
Wyczytałem, że muszę gdzieś użyć CreateControl()
tylko nie bardzo wiem gdzie (próbowałem w paru miejscach i bez skutku...)