NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!
Avatar
švrčajs
Člen
Avatar
švrčajs:10.6.2017 20:41

Zdravím, potřeboval bych radu ohledně obsloužení události po načtení page... Jedná se mi o to, že při inicializaci stránky do ní vkládám pdf dokument. A po vytvoření bych potřeboval automaticky přehodit stránku v pdf souboru na jinou. Vygooglil jsem postup, jak na to, teda, alespoň si to myslím :D... Ale háže mi to error skrz System.NullRe­ferenceExcepti­on: 'Odkaz na objekt není nastaven na instanci objektu.' a už si s tím nevím rady, nekoukl by mi prosím na to někdo ?

public partial class TeorieGlobalSite : Page
{
    public MoonPdfPanel MoonPdfPanel { get { return this.moonPdfPanel; } }

    int pageNumber;
    public TeorieGlobalSite(int pageNumber)
    {
        InitializeComponent();
        this.pageNumber = pageNumber;
        MoonPdfPanel.OpenFile("RaspiCam-Documentation.pdf");

        MoonPdfPanel.PageRowDisplay = MoonPdfLib.PageRowDisplayType.ContinuousPageRows;
        MoonPdfPanel.ViewType = MoonPdfLib.ViewType.SinglePage;
        this.Loaded += new RoutedEventHandler(TeorieGlobalSite_load);
    }
    private void TeorieGlobalSite_load(object sender, RoutedEventArgs e)
    {

        //tady dochází k chybě..
        this.MoonPdfPanel.GotoPage(pageNumber);

    }


    private void MenuItem_Click(object sender, RoutedEventArgs e)
    {
        MoonPdfPanel.GotoPage(1);
    }

    private void MenuItem_Click_1(object sender, RoutedEventArgs e)
    {
        MoonPdfPanel.GotoPage(4);
    }


}
Editováno 10.6.2017 20:42
 
Odpovědět
10.6.2017 20:41
Avatar
krepsy3
Tvůrce
Avatar
krepsy3:10.6.2017 23:21

Neznám třídu MoonPdfPanel, ale dva postřehy:

Proměnnou typu MoonPdfPanel bych přejmenoval, třeba na PdfPanel, ať snadno odlišíš volání na tento dield a na třídu MoonPdfPanel

Zkus se podívat na metodu MoonPdfPanel.O­penFile(), jestli nemá návratový typ MoonPdfPanel, tedy

public MoonPdfPanel PdfPanel;

...

PdfPanel = PdfPanel.OpenFile(....);
Nahoru Odpovědět
10.6.2017 23:21
Programátor je stroj k převodu kávy na kód.
Avatar
švrčajs
Člen
Avatar
Odpovídá na krepsy3
švrčajs:11.6.2017 15:47

Metoda OpenFile je void, tudíž nic nevrací...

 
Nahoru Odpovědět
11.6.2017 15:47
Avatar
krepsy3
Tvůrce
Avatar
Odpovídá na švrčajs
krepsy3:11.6.2017 16:13

Nadruhou stranu je ale možné, že ji kompiler vzal jako volání na třídu. Zkusil jsi přejmenovat field?

Nahoru Odpovědět
11.6.2017 16:13
Programátor je stroj k převodu kávy na kód.
Avatar
Odpovídá na švrčajs
sadlomaslox25:11.6.2017 17:10

to spis podle me neexistuje ten soubor.
radek MoonPdfPanel.O­penFile("Raspi­Cam-Documentation­.pdf"); bude hledat to pdf ve slozce projekt/bin kdyz to nenajde tak podle me to nevyhodi chybu ale v momente kdy chces zmenit cislo stranky tak to spadne.

taky by se hodilo kdyby si sem dal cely kod te chyby jakoze NullReference­Exception ti sice vyskakuje na tom tvem radku kodu ale to neznamena ze se to tyka tveho kodu. napr. v call stacku dane chyby jde vetsinou rychle urcit co presne je null.

 
Nahoru Odpovědět
11.6.2017 17:10
Avatar
Jan Wire
Člen
Avatar
Jan Wire:19.6.2017 2:27

Ahoj v prvé řadě zkus to napsat jinak !!

public partial class TeorieGlobalSite : Page
{
public MoonPdfPanel MoonPdfPanel { get { return this.moonPdfPanel; } }

int pageNumber;
public TeorieGlobalSi­te(int pageNumber)
{
InitializeCom­ponent();
this.pageNumber = pageNumber;

/// <summary>
/// jsi už vytvořená ?
/// </summary>
if (MoonPdfPanel != null)
{
// pokud jo tak...
MoonPdfPanel.O­penFile("Raspi­Cam-Documentation­.pdf");

MoonPdfPanel.Pa­geRowDisplay = MoonPdfLib.Pa­geRowDisplayTy­pe.ContinuousPa­geRows;
MoonPdfPanel.Vi­ewType = MoonPdfLib.Vi­ewType.Single­Page;
this.Loaded += new RoutedEventHan­dler(TeorieGlo­balSite_load);
}
}
private void TeorieGlobalSi­te_load(object sender, RoutedEventArgs e)
{

//tady dochází k chybě..
this.MoonPdfPa­nel.GotoPage(pa­geNumber);

}

private void MenuItem_Clic­k(object sender, RoutedEventArgs e)
{
if (MoonPdfPanel != null)
{
MoonPdfPanel.Go­toPage(1);
}
}

private void MenuItem_Clic­k1(object sender, RoutedEventArgs e)
{
if (MoonPdfPanel != null)
{
MoonPdfPanel.Go­toPage(4);
}
}

}

Chyba zmizí, ber to jako radu nakopnutí :)

 
Nahoru Odpovědět
19.6.2017 2:27
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.