VS 2008 - problem z Designerem

0

Witam

Mam taki problem. Do tej pory przy tworzeniu własnej kontrolki wyświetlającej np. dane na gridzie nadpisywałem metodę OnLoad:

protected override void OnLoad(EventArgs e)
{
           Init();
            base.OnLoad(e);            
}

gdzie funkcja Init() ładowała między innymi ładowała dane do grida ustawiała nazwy kolumn itp. Dzisiaj coś mi się "pochrzaniło" i designer nie potrafi utworzyć tej kontrolki np. na Formie.

Coś takiego pomaga:

protected override void OnLoad(EventArgs e)
        {
            if (!this.DesignMode) //to pomaga
                Init();

            base.OnLoad(e);            
        }

Nie mam pojęcia co się nagle przestawiło. Jakieś ustawienia VS? Macie jakieś sugestie. Bardzo proszę o pomoc. Wygląda to tak jakby designer VS wywoływał funkcję Onload() komponentu co dla mnie jest chyba nie normalne....

0

Cokolwiek się dzieje w normalnej pracy designer bardzo często nie działa ponieważ nie radzi sobie z jakimikolwiek bardziej wyrafinowanymi konstrukcjami, więc to że nie działa nie musi oznaczać błędu a po prostu tak ma być. Proponuję zapomnieć że coś takiego jak designer w VS istnieje - im szybciej, tym lepiej.

0

najwyraźniej w tym Init() robisz coś, czego nie można w design mode.

Proponuję zapomnieć że coś takiego jak designer w VS istnieje - im szybciej, tym lepiej.
no bez jaj…

0

@ziom ASP.NET chyba pisze o designerze webowym i ma dużo racji. A @moneuszowi chodzi chyba o designer WinForms, bo stamtąd kojarzę DesignMode. Ten designer jest dużo stabilniejszy, o ile nie robi się dziwnych rzeczy typu odwołanie do bazy danych albo zewnętrznych bibliotek w konstruktorze formatki czy kontrolki, bo konstruktor jest wywoływany przez Designer, nie ma w tym zresztą nic dziwnego.

0

Dzięki chłopaki...

Dokładnie tak...Designer nie radzi sobie (co jest normalne) z konstrukcjami gdzie obiekty inicjują się na starcie...

0

Tak, chodziło mi o designer w ASP.NET :)

0
moneusz napisał(a)

Designer nie radzi sobie (co jest normalne) z konstrukcjami gdzie obiekty inicjują się na starcie...

Bo takie konstrukcje nie są normalne, więc normalne jest, że normalny designer nie radzi sobie w nienormalnej sytuacji.

Konstruktor czy zdarzenie OnLoad to nie są miejsca do wykonywania logiki aplikacji. Od tego są inne warstwy aplikacji, np. Presenter w MVP lub Controller w MVC. GUI ma być głupie i bierne.

0

a propoS MVP gdzie można znaleźć jakiś sensowny przykład z wykorzystaniem nHibernate?

1 użytkowników online, w tym zalogowanych: 0, gości: 1