Mam problem.
Po dodaniu TabPage nr 7 do TabControl wyskakuje mi błąd:
Czy ktoś z was spotkał się z czymś takim? Pomocy!
Mam problem.
Po dodaniu TabPage nr 7 do TabControl wyskakuje mi błąd:
Czy ktoś z was spotkał się z czymś takim? Pomocy!
Pokaż co masz w konstruktorze tego formularza (kod). Puść też kod przez debugger i zobacz co siedzi w InnerException (to jest właściwość klasy Exception).
Dzięki za odpowiedź.
Tylko jak wyświetlić konstruktor?
Konstruktor to jest procedura o nazwie New. Jeśli nie masz jej w kodzie Form-y, to ja błędnie założyłem, że edytowałeś kod konstruktora Form-y i wprowadziłeś w nim jakieś wywołanie, które powoduje, że powstaje nieskończona rekurencja. Pokaż mi w takim bądź razie fragment kodu, w którym występuje błąd i powiedz co wyczytałeś z tego całego InnerException?
Nie edytowałem kodu konstruktora. To trochę dziwne, bo jedyne co zrobiłem, to dodałem TabPage nr 7 do TabControl. Jeżeli powrócę do poprzedniej wersji - działa. Dodaję kontrolkę TabPage - wyskakuje błąd przy debugowaniu. Problem w tym, że nie pokazuje mi w którym fragmencie kodu występuje błąd. Tylko okienko: InvalidOperationExeption was unhandled. Pokazuje mi:
Ciekawe
Czy możesz mi wysłać cały projekt? Zerknę na to u siebie.
Dziękuję za dobre chęci i pomoc, ale niestety nie mogę ci przesłać projektu. Jest prawie na ukończeniu.
Aha, rozumiem :). No to za dużo nie jestem w stanie pomóc. Jedyne co Ci mogę powiedzieć to dodaj taki fragment kodu do Form-y, żeby wyłapać ten InnerException (zakładam, że wyjątek pojawia się w trakcie uruchamiania aplikacji).
Public Sub New()
Try
InitializeComponent()
Catch ex As ApplicationException
If Not ex.InnerException Is Nothing Then MessageBox.Show(ex.InnerException.Message)
End Try
End Sub
Gdzie go wywołać?
W Form.Load?
Wklejasz to po prostu do kodu Form-y (w dowolne miejsce):
Public Class Form1
Public Sub New()
Try
InitializeComponent()
Catch ex As ApplicationException
If Not ex.InnerException Is Nothing Then MessageBox.Show(ex.InnerException.Message)
End Try
End Sub
End Class
Zrób jeszcze jedną rzecz … Utwórz nowy projekt, dodaj na Form-ę kontrolkę TabControl i dodaj kilka zakładek (>7) w celu sprawdzenia, czy też wystąpi ten sam wyjątek.
Program nie dochodzi do: “If Not ex.InnerException Is Nothing Then MessageBox.Show(ex.InnerException.Message)”
Wcześniej wyskakuje ten sam błąd.
Nowy projekt z tabpages >= 7 działa bez zarzutu.
Podmień ApplicationException na Exception lub SystemException i daj znać, czy teraz się załapie. InvalidOperationException nie dziedziczy po ApplicationException /facepalm. Ten wyjątek pojawia się przy próbie uruchomienia aplikacji, tak?
Dożo wiesz!
Złapałeś ten wyjątek, czy nie?
Tak. Przy debugowaniu.
Złapał się, ale wyskakuje okienko, a w nim nic.
Najwyraźniej komunikat błędu w tym InnerException jest pusty. Mówi się trudno. Ustaw sobie breakpoint na linijce InitializeComponent() i przejdź krok po kroku przez cały plik .Designer.vb. W końcu natrafisz na tą linijkę, która wyrzuca wyjątek (musisz się uzbroić w cierpliwość
). Wydaje mi się to mało prawdopodobne, ale najwyraźniej kreator Visual Studio namieszał Ci w kodzie.
Złapał się
Co to znaczy złapał się? Czy możesz być bardziej szczegółowy w opisach? Teraz już musisz sobie poradzić sam. Zakładam, że debugger-a umiesz używać. Znajdź linijkę, na której wyrzucany jest wyjątek i ją popraw. Dodam tylko, że żeby zobaczyć plik .Designer.vb musisz zaznaczyć nazwę projektu, a później kliknąć Show All Files

Jest !
Już działa !
Powodem chyba było odwołanie z funkcji zewnętrznej typu MainForm.Kontrolka, bo te z Me.Kontrolka przechodziły.
Będę mądrzejszy na przyszłość.
Interesuje mnie tylko fakt, co ma do tego TabControl?
Wielkie dzięki za pomoc ![]()
Jestem Ci winny duże piwo.
Pozdrawiam.
Tadek
Szczerze mówiąc, nie mam pojęcia czemu problem pojawił się dopiero po dodaniu nowego tab-a do tabcontrol. Możesz pokazać całą linijkę, na której występował błąd? Również pozdrawiam 