WindowsMobile

Napisałem prostą aplikacje która dodaje 'przypomnienie' o urodzinach dla osób których datę mamy w kontaktach, oraz możliwość ustawienia daty wewnątrz aplikacji dla osób które tej daty nie mają - i właśnie tutaj pojawia się problem, aplikacja co prawda działa na emulatorach windows mobile 5.0 6.0 i 6.5 ale już na smartphonie znajomego nie.

error:

Microsoft.AGL.Common.MISC.HandlerAr(PAL_ERROR ar) w

System.Windows.Forms.Control._SetBoundsCore(Rectangle rect, BoundsSpecified bsSpecified) w

System.Windows.Forms.Control.set_Location(Point value) w

SmartDeviceProject1.Form1.InitizlizeComponent() w

SmartDeviceProject1.Form1.ctor() w

SmartDeviceProject1.Program.Main()

Genialnym sposobem 'debugowania' przez messageBox doszliśmy do kawałka który powodował wyrzucenie podanego błędu:

 this.calendar.Size = new System.Drawing.Size(163, 149);

jak dla mnie wygląda całkiem dobrze, szczególnie dlatego że jest to automatycznie generowane przez Visual Studio, na necie znalazłem kilka 'rozwiązań' tego problemu, ale nic niestety nie poskutkowało.

  • Ja stawiam na niekompatybilność CF.NET.

    Na emulatorze Ci to działało ponieważ VS sprawdziło jaka wersja CF.NET znajduje się na "urządzeniu" uruchomionym w emulatorze i w razie potrzeby zainstalował poprawną wersję CF.NET, a na smartfonie kolegi może być dostępna inna wersja CF.NET niż ta na którą targetowany jest Twój produkt. Sam miewałem z tym wiele problemów gdy pisałem sobie różnie programy dla WinMo w C# i CF.NET. I problemy czasem występowały w sytuacjach gdy różnica numeru wersji CF.NET była na 3 miejscu [w sensie 2.0.0 a 2.0.1].

    Za to internet podpowiada, że powinieneś upewnić się czy to przypisywanie rozmiaru odbywa się z tego samego wątku w którym obiekt został stworzony.

  • Może ten rozmiar jest większy od dostępnego ekranu? Na czym to jest odpalane?

    Może to jest exception, że to nie jest obsługiwane

    Zaglądnąłbym na ten wątek - może dotyczy czego innego, bo buttonów, ale może się przydać

    Link - Not Supported Exception

  • Ja bym sprawdził różnica pomiędzy SmartPhone i PocketPC platformami. Po pierwsze: czym był emulator i czym był device?

    Wiem z doświadczenia że takie błedy się pokazują (kompatybilność pomiędzy jedną a drugą platformą) i sam musiałem rozwiązywać podobny problem z bounds ramki w jednej aplikacji. Jeśli myślisz że jest taka szansa, zostaw komentarz i postaram się przybliżyć szczegóły.

Zaloguj się, aby dodać swoją odpowiedź