problem z aplikacja c#

  • 11 Odpowiedzi
  • 4127 Wyświetleń

0 użytkowników i 1 Gość przegląda ten wątek.

*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
problem z aplikacja c#
« dnia: Październik 04, 2009, 01:38:39 »
mam problem z aplikacja w najnowszych romach czyli Win mo 6.5 SE

wpisujac kod form2.showdialog():
w oknie form1 ikonki z form1 zostaja po wyswietleniu 2 formy ( wyswieltaja sie tylko guziki ale nie dzialaja)  ale o dziwo gdy juz sie zamknie form 1 to reszta aplikacji dziala jak nalezy.  najlepszym rozwiazaniem byloby zamkniecie formy 1 po otwraciu formy 2 - jak to zrobic??

http://w312.wrzuta.pl/obraz/88QkYl5tLmU/touch_pro  - gdyby zdjecie sie nie pokazywalo daje link


mam wrazenie ze jest wina nowych kontrolek

prosze o wszelka pomoc

*

Offline joker77

  • *
  • 51
  • Płeć: Mężczyzna
  • Sprzęt: Samsung I600, Toshiba G910, htc magic
Odp: problem z aplikacja c#
« Odpowiedź #1 dnia: Październik 04, 2009, 19:05:50 »
Prawdopodobnie coś wpada w pętle w części ładującej Form2 i przez to widać tylko część przycisków.
Oczyść Form2_Load i odpal np. w timerze z opóźnieniem np. 3 sek.

*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
Odp: problem z aplikacja c#
« Odpowiedź #2 dnia: Październik 04, 2009, 20:55:35 »
to nie to.
problem wystepuje tylko w romach z nowymi kontrolkami ;(
na starych wszystko dziala

namespace menu_and_tree_test
{
    
    public partial class Form1 : Form
    {
        public Form1()
        {
        
            InitializeComponent();
            
            
        }
        
        
        private void button1_Click(object sender, EventArgs e)
        {
            file_dialog file = new file_dialog();
            file.Show();    
        }

        private void button2_Click(object sender, EventArgs e)
        {
            Form4 otworz = new Form4();
            otworz.ShowDialog();    
            
        }
        

        private void button3_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void button4_Click(object sender, EventArgs e)
        {
            net polnet = new net();
            polnet.ShowDialog();
              
        }
    }
}

przypuscmy ze klikamy button 2

namespace menu_and_tree_test
{
    public partial class Form4 : Form
    {
        public static string baza;
        public static string path;
        public static string login;
        public static string haslo;
        public static string sciezkabazy;
        public Form4()
        {
            
            InitializeComponent();
            path = "\\My documents\\";
            textBox3.Text = path;
            sciezkabazy = "";
            login = "";
            textBox2.Text = "";
        }
          
        private void menuItem3_Click(object sender, EventArgs e)
        {
            if (textBox12.Text == "" || textBox3.Text == "")
            {
                if (textBox12.Text == "")
                    MessageBox.Show("Podaj nazwe bazy");
                if (textBox3.Text == "")
                    MessageBox.Show("Podaj lokalizacje bazy");
            }
            else
            {
                baza = textBox12.Text;

                path = textBox3.Text;
                if (!Directory.Exists(path))
                {
                    Directory.CreateDirectory(path);
                }



                sciezkabazy = path + baza + ".sdf";
                //   login = textBox4.Text;
                haslo = textBox2.Text;
                //   textBox4.Text = sciezkabazy;
                if (System.IO.File.Exists(sciezkabazy))
                {

                    MessageBox.Show("Baza o nazwie " + baza + " juz istnieje!!! \n Podaj inna nazwe");
                }
                else
                {

                    System.Data.SqlServerCe.SqlCeEngine SQLEngine;
                    SQLEngine = new SqlCeEngine("DataSource=" + sciezkabazy + ";password=" + haslo + "");  //password=<myPassword>
                    SQLEngine.CreateDatabase();


                    wyswietl wys = new wyswietl();
                    wys.Show();
                    textBox12.Text = file_dialog.sciezka;
                    textBox3.Text = sciezkabazy;
               //     MessageBoxButtons.OK();//"Utworzyłem baze o nazwie " + sciezkabazy);
                    MessageBox.Show("Utworzyłem baze o nazwie " + sciezkabazy);
                    this.Close();

                }

            }
        }

        private void menuItem4_Click(object sender, EventArgs e)
        {
            Form1 form = new Form1();
            form.ShowDialog();
            

        }
    
    }
}

nie widze zeby bylo tutaj cos nie tak . tak jak pisalem wyzej na wczesniejszych romach wszytsko dzialalo ale kiedy uzywam programu dalej i otiweram jakies okno to czasami znika to menu a znika za kazdym razem gdy wejde do jaiegos okna i je zamkne. pozatym gdy uzywam programu task manager widoczne sa 2 okna:  menu , oraz 2 jak zrobic zeby bylo tylko jedno?? uzyc showDialog - nic nie daje w przykladzie wyzej jest to samo.
i gdy tylko zamkne form1 wylacza mi sie caly program
np

otw.show();
this.close();     wszytsko sie wylacza

a gdy zrobie
otw.showdialog();
this.close() ;   <- to sie wykonuje dopiero jak wroce do tego okna

jeszcze jedna sprawa - jak to mozliwe ze moje MENU - zwykle buttony (zadne obrazki) zabiera 1,5 mb ramu ??
« Ostatnia zmiana: Październik 04, 2009, 21:29:19 wysłana przez marianpower »

*

Offline joker77

  • *
  • 51
  • Płeć: Mężczyzna
  • Sprzęt: Samsung I600, Toshiba G910, htc magic
Odp: problem z aplikacja c#
« Odpowiedź #3 dnia: Październik 05, 2009, 19:07:00 »
sprawdź wersję CF.net, ja ostatnio miałem taki problem z aktualizowałem sobie frameworka do SP2 i próbowałem odpalić program na komputerze z SP1, być może powinieneś zaktualizować CF.net do nowszej wersji.

Ja niestety mam dostęp do wm 6.0 i jak narazie wszystkie kontrolki działają.

*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
Odp: problem z aplikacja c#
« Odpowiedź #4 dnia: Październik 06, 2009, 14:53:19 »
ja pisalem progrma w cf.net 2.0 . a na telefonie nie wiem  moze juz jest 3,7 i dlatego nie dziala ? nie mam pojecia a ajk to sie sprawdz na telefonie w rejestrze??

i jeszcze jedno co trzeb austawic zeby program dziala tylko na pockecie a nie na pockecie i windowsie - mysle ze stad bierze sie to 1,5 mb zjedzonego ramu przy 4 buttonach :( a program mozna normalnie odpalic w xp
« Ostatnia zmiana: Październik 06, 2009, 15:18:18 wysłana przez marianpower »

*

Offline joker77

  • *
  • 51
  • Płeć: Mężczyzna
  • Sprzęt: Samsung I600, Toshiba G910, htc magic
Odp: problem z aplikacja c#
« Odpowiedź #5 dnia: Październik 07, 2009, 14:09:27 »
ja pisalem progrma w cf.net 2.0 . a na telefonie nie wiem  moze juz jest 3,7 i dlatego nie dziala ? nie mam pojecia a ajk to sie sprawdz na telefonie w rejestrze??
CF .net 1.x, 2.x, 3.x to oddzielne rodziny - i albo piszesz w 1.x lub 2.x albo 3.x i nie są kompatybilne w dół.
Przynajmniej tak jest na dużym bracie PC, i pamiętaj o podwersjach frameworków to też ważne.

*

Offline miba

  • *****
  • 4050
  • Płeć: Mężczyzna
  • Sprzęt: Toshiba G900, doszedł x51v
Odp: problem z aplikacja c#
« Odpowiedź #6 dnia: Październik 07, 2009, 14:24:19 »

otw.show();
this.close();     wszytsko sie wylacza

a gdy zrobie
otw.showdialog();
this.close() ;   <- to sie wykonuje dopiero jak wroce do tego okna

jeszcze jedna sprawa - jak to mozliwe ze moje MENU - zwykle buttony (zadne obrazki) zabiera 1,5 mb ramu ??

Czy znane Ci jest pojęcie modalności? showdialog wywołuje modalny dialog i sterownie powinno wrócić dopiero po zakończeniu dialogu. Tak jest w starym WINAPI i przmapowali to do net-u. Zachowanie jest normalne. Dodatkowo wywołując showdialog jego oknem-właścicielem jest bieżące aktywne okno. Może tu leży problem - spróbuj otwierać dialog z formy  dlg.ShowDialog(this) czyniąc ojcem formę nadrzędną.
Aha w dokumentacji piszą,  że  zamknięcie frormy dialogu jej nie usuwa i trzeba robić to za pomocą dispose. Ja bym raczej polecał takie wyświetlanie modalnych dialogów tzn. w cyklu utwórz, wyświetl dialog, pobierz wynik, zniszcz formę dialogu.

Jeśli chodzi o te MB to normalne - za prostotą kodu stoi wielki framework.

No i link jeśli chcesz to przestudiować: http://msdn.microsoft.com/en-us/library/c7ykbedk.aspx

*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
Odp: problem z aplikacja c#
« Odpowiedź #7 dnia: Październik 07, 2009, 14:32:24 »
dziekuje bardzo za odpowwiedz . przestudiuje to na 100% ale pod wieczór a mam jeszcze jedno pytanie - czemu inne aplikacje napisane przez innych programisów zabieraja po ok 100 - 300kb cale aplikacje a moje menu oz 1,5 mb to jest bardzo duzo zwlaszcza gdy chce ktos odpalić program na starym aparacie ktore ialy po 32mb ?? program sam zajmuje na dysku 2- 3 mb + 2x 1,5 to jest 6mb.

*

Offline miba

  • *****
  • 4050
  • Płeć: Mężczyzna
  • Sprzęt: Toshiba G900, doszedł x51v
Odp: problem z aplikacja c#
« Odpowiedź #8 dnia: Październik 07, 2009, 14:47:07 »
Masz na myśli aplikacje pisane w netcf? Może faktycznie coś wrzucasz ekstra.. Jakieś dodatkowe kontrolki przykładowo? Nie mam na pulpicie Twojego całego projektu więc ciężko mi coś sensownego powiedzieć.


*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
Odp: problem z aplikacja c#
« Odpowiedź #9 dnia: Październik 08, 2009, 00:13:42 »
w bodajrze 3 poscie jest kod z form1 oraz form 2 kazdy zajmuje po 1,5 pamieci .
 a jak zrobic zeby program otwieral sie tylko na pockecie?? u mnie na komputerze normalnie sie odpala a w innych programasz pisze ze nie ejst to aplikacja windos 32

*

Offline miba

  • *****
  • 4050
  • Płeć: Mężczyzna
  • Sprzęt: Toshiba G900, doszedł x51v
Odp: problem z aplikacja c#
« Odpowiedź #10 dnia: Październik 08, 2009, 06:48:47 »
Bardziej interesujące jest, co masz w projekcie włączone zamiast gołego kodu dwu form. Pojedyncza forma nie powinna tyle zajmować. Sam kod wirtualny na pewno jest dużo mniejszy.
Odnośnie detekcji platformy: http://blog.nerdbank.net/2006/09/platform-detection-i-how-to-detect-that.html
Na komputerze bez zainstalowanego net-u oczywiście Twoja aplikacja się nie odpali i wyskoczy komunikat jaki opisałeś.

*

Offline marianpower

  • ****
  • 960
  • Płeć: Mężczyzna
    • Pozycjonowanie stron
  • Sprzęt: HD2 , DESIRE, SENSATION
Odp: problem z aplikacja c#
« Odpowiedź #11 dnia: Listopad 30, 2009, 01:26:43 »
juz sie obroniłem i zaczałem testowac rozne romy!
odkrylem ze na romie energy z buildem 21877 program dziala jak na pierwszym obrazku natomiast z buildem 28005 dziala bez problemu - wiec wina leży po stronie buildu (choc jest to dość dziwny) czy ktoś wie czym się różnia te buildy??