Forum Coders' city Strona Główna Coders' city
Nasza pasja to programowanie!
 

 PomocPomoc   SzukajSzukaj   UżytkownicyUżytkownicy   GrupyGrupy  RejestracjaRejestracja 
Archiwum starego forum + teoria    RSS & Panel/SideBar
 ProfilProfil   Zaloguj się, by sprawdzić wiadomościZaloguj się, by sprawdzić wiadomości   ZalogujZaloguj 

Potrzebuję szybkiej odpowiedzi na moje pytanie... Zasady

[VB.NET] Kolejność ładowania kontrolek



 
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, …
Zobacz poprzedni temat :: Zobacz następny temat  
Autor Wiadomość
Sousuke



Dołączył: 19 Lis 2005
Posty: 604
Skąd: Wrocław

PostWysłany: Wto Sty 09, 2018 2:15 am  OP    Temat postu: [VB.NET] Kolejność ładowania kontrolek Odpowiedz z cytatem Pisownia

Cześć, czy ktoś wie od czego zależy kolejność ładowania kontrolek określona w pliku form1.Designer.vb? Mam customową kontrolkę, którą wrzuciłem do środka TabPage. W pliku Desinger.vb, który ładuje już konkretne pola klasy kontrolki najpierw pojawia się TabPage, dopiero po nim moja customowa kontrolka, przez co aplikacja wywala błąd null reference. Jeśli ręcznie zamienię w tym pliku obie kontrolki - wszystko działa. Jednak jakakolwiek zmiana na formie powoduje wygenerowanie tego pliku ponownie z błędną kolejnością. Czy jest jakiś sposób by ustalić kolejność w jakiej mają się one pojawiać w pliku?
Tutaj poglądowo fragment pliku form1.Designer.vb, aby pokazać o które dokładnie miejsce mi chodzi
Kod:
'
'tabPage
'
Me.tp_playlist.BackColor = System.Drawing.SystemColors.Control
Me.tp_playlist.Controls.Add(Me.customControl)
Me.tp_playlist.Location = New System.Drawing.Point(4, 4)
Me.tp_playlist.Margin = New System.Windows.Forms.Padding(0)
Me.tp_playlist.Name = "tabPage"
Me.tp_playlist.Size = New System.Drawing.Size(268, 288)
Me.tp_playlist.TabIndex = 0
'
'customControl
'
Me.faSave.Location = New System.Drawing.Point(250, 0)
Me.faSave.Margin = New System.Windows.Forms.Padding(0)
Me.faSave.Name = "customControl"
Me.faSave.Size = New System.Drawing.Size(18, 18)



Poprawnie najpierw powinno być customControl, potem tabPage. Jeśli ma to jakiekolwiek znaczenie, customControl dziedziczy po Labelce.

_________________
Blog na temat programowania w .NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
lethern



Dołączył: 09 Paź 2007
Posty: 1114

PostWysłany: Wto Sty 09, 2018 11:26 am      Temat postu: Odpowiedz z cytatem Pisownia

nie chce nic mówić, ale w tym fragmencie nigdzie nie tworzysz obiektów, jedynie ustawiasz im właściwości... Więc skąd wynika ten null pointer?
Sprawdź konstruktor swojej kontrolki, czy to w nim nie sięgasz do czegoś, co jest nullem (np. parent?)

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Visual Studio C++ free.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Sousuke



Dołączył: 19 Lis 2005
Posty: 604
Skąd: Wrocław

PostWysłany: Wto Sty 09, 2018 11:43 am  OP    Temat postu: Odpowiedz z cytatem Pisownia

Nie pisałem, że tutaj tworzy obiekty :P
Błąd pojawia się w linii 5, w pełnym pliku Designer.vb tworzenie obiektów jest dużo wyżej i tam zamiana kolejności tych obiektów nie ma żadnego znaczenia, ważne jest aby ustawiania tych właściwości dla customControl było przed TabPagem. Sam błąd wywala się w code behindzie tej kontrolki, ale na linijce mającej niewiele wspólnego z tymi obiektami. Podejrzenie StackTrace'a w wyjątku pokazuje mi, że błąd jest właśnie w tej linii w pliku form1.Designer.vb

_________________
Blog na temat programowania w .NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
lethern



Dołączył: 09 Paź 2007
Posty: 1114

PostWysłany: Wto Sty 09, 2018 12:34 pm      Temat postu: Odpowiedz z cytatem Pisownia

to nadal dziwne i nadal obstawiam, że powinieneś coś zmajstrować w konstruktorze swojej kontrolki

dla testu możesz spróbować przenieść te 4 linijki z custom do konstruktora, tylko wstawić tam puste wartości (żeby nie było nothing), to będziesz wiedział przynajmniej czy to o to chodzi

czy stacktrace nie mówi nic więcej? Czy to naprawde ta linijka?
Kod:
Me.tp_playlist.Controls.Add(Me.customControl)

rzucał null pointerem, jedyne co mi przychodzi do głowy, to że jakiś event leci w tle i odczytuje jakąś pustą zmienną. Nie zaszkodzi Ci chyba, jakbyś wrzucił więcej info z tego exception?

_________________
używasz Dev-Cpp? tools->editor options -> use tab character (włącz), smart tabs (wyłącz)... albo ściągnij np. Visual Studio C++ free.
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Wyślij email
Sousuke



Dołączył: 19 Lis 2005
Posty: 604
Skąd: Wrocław

PostWysłany: Wto Sty 09, 2018 1:33 pm  OP    Temat postu: Odpowiedz z cytatem Pisownia

Dzięki wielkie, skopiowałem wszystkie właściwości z tego pliku i wrzuciłem do konstruktora. Następnie usuwałem pojedynczo szukając, która powoduje błąd i znalazłem. Dzięki :)
_________________
Blog na temat programowania w .NET
Powrót do góry
Zobacz profil autora Wyślij prywatną wiadomość Odwiedź stronę autora Numer GG
Wyświetl posty z ostatnich:   
Odpowiedz do tematu    Forum Coders' city Strona Główna -> Visual Studio: C#, VB, VC++, … Wszystkie czasy w strefie CET (Europa)

Strona 1 z 1

 
Skocz do:  
Możesz pisać nowe tematy
Możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Możesz dodawać załączniki na tym forum
Możesz pobierać pliki z tego forum




Debug: strone wygenerowano w 0.34637 sekund, zapytan = 11
contact

| Darmowe programy i porady Jelcyna | Tansze zakupy w Helionie | MS Office Blog |