[ logic_rabbit @ 11.04.2006. 10:38 ] @
Pitanje 1:
Kako da napravim login formu u c#-u koja kad su bla bla uslovi zadovoljeni da pozove recimo
form2 a sebe da ugasi s tim da je login forma startna za projekat?
Imam neko resenje sa thread-ingom koje mozda moze proci a mozda i ne.
Pitanje 2:
Kako da resim bug u datagridu za visual studio 2003 koji se nece scrolovati?
Pitanje 3:
Kako da napravim rounded rectangle panel koji ima 3dBorder oko sebe drugcije boje nego panel sa nekim tekstom a na sebi ima neku drugu boju sa linear gradient efektom i da
to bude moja user kontrola koju mogu korisititi kad mi se cefne.
[ mmix @ 11.04.2006. 12:29 ] @
1. Promeni logiku
Net ti je form2 osnovni form. U Form_load eventu:
a) this.Hide da sakrijes sebe
b) kreiraj login formu i pokazi je modalno
c) on onClick event na OK dugmetu na login formi obavi provere o kojima pricas i shodno tome dozvoli/zabrani zatvaranje login forme.
d) u form2 po povratku iz ShowDialog proveri ad li je rezultat dijaloga Ok, ako nije onda Me.Close u suprotnom nastavi da koristis form2.

2. no comment

3.
a) Kreiraj novi Class Library projekat u tvom solution-u
b) Dodaj user control
c) na "radnoj povrsini kontrole" pobacaj druge kontrole koje hoce da budu deo tvoje kontrole.
d) ako je kontrola fleksibilne velicine, pazi da ti anchor-s na pod kotrnolama bude adekvatno podesen.
e) Kad rebildujes solution u toolbox-u ce se pojaviti tvoja kontrola koju onda mozes da bacis na formu u glavnom projektu
f) E sad, kako da napravis rounded rectangle sa 3d borderom, jedini nacin koji ja znam je da iskoristis UltraPanel kontrolu iz Infragistics UltraSuite biblioteke. Ali koliko vidim taj proizvod nije toliko popularan na nasim prostorima. Eventualno mozes da budes bas zaludan pa da napravis "pravu" kontrolu kroz kod (nasledis recimo Panel klasu i override na Paint metod pa sam iscrtavas).


[ logic_rabbit @ 11.04.2006. 13:30 ] @
1.Za pitanje 1 ja taj nacin poznajem ali on ima bug ako na login formi ima dugme odustani
i korisnik ga pritisne na login formi na sekund se vidi forma koja je startna sto me jako nervira iako je postavljena u propertis-u na hide .
3.Sto se tice trecega ja sam htio sam da iskodiram kompletnu kontrolu na paint event panela imam odredjeni dio koda uradjen ali mi fali jos.
Gdje mogu da nadjem tu komponentu koju si naveo i jos neke za c#?
[ mmix @ 11.04.2006. 14:02 ] @
Hmm, pa ne znam koliko izbora imas ovde. Prva forma koja se kreira je main forma i njeno gasenje izaziva izlazak iz Application.Run i efektivno gasenje aplikacije.

Infragistics UltraSuite mozes naci na http://www.infragistics.com. Nije jeftino ali (bar nama) vredi svaku paru, narocito UltraGrid komponenta i za winforms i za webforms.
[ IdeaR @ 11.04.2006. 16:34 ] @
Citat:
logic_rabbit: 1.Za pitanje 1 ja taj nacin poznajem ali on ima bug ako na login formi ima dugme odustani
i korisnik ga pritisne na login formi na sekund se vidi forma koja je startna sto me jako nervira iako je postavljena u propertis-u na hide .


Prvo uradiš provjeru na login formi, pa tek onda u zavisnosti od provjere radiš prikazivanje splash screena, i Application.Run(MainForm);
[ logic_rabbit @ 11.04.2006. 18:35 ] @
IdeaR nisi razumio problem.
Imam neko resenje sa threadovima.Prvo se kreira login forma i njen thread zatim ako su uslovi logovanja zadovoljeni
kreira se novi thread koji nosi main formu a onaj thread na kome je pocivala login forma se ubija cini se da ovaj kod nema
bagova samo se main forma mora prikazati modalno.
Ne pada mi napamet da kupujem komponente istu sa full sourcem verovatno mogu naci negdje za djabe.:-)
Onaj odgovor za pitanje 3 mi je pomogao hvala.
[ IdeaR @ 11.04.2006. 18:47 ] @
Ne trebaju ti threadovi.

Code:

[STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();            
            MainForm mForm = new MainForm();           

            LoginForm loginForm = new LoginForm();
            loginForm.ShowDialog();

            if (loginForm.DialogResult == DialogResult.Cancel) 
        { 
            Application.Exit(); 
        }
            else
                {
                        //
                    ShowSplashScreen();
                    _SplashScreen.Owner = mForm;
                    //
                    HideSplashScreen();

                    Application.Run(mForm);
                }
            
        }






[Ovu poruku je menjao IdeaR dana 11.04.2006. u 19:49 GMT+1]
[ IdeaR @ 11.04.2006. 21:09 ] @
Citat:
mmix: Hmm, pa ne znam koliko izbora imas ovde. Prva forma koja se kreira je main forma i njeno gasenje izaziva izlazak iz Application.Run i efektivno gasenje aplikacije.


Nije striktno tačno.

Application.Run(); (-ne moramo pokrenuti nikakvu main formu!) bez parametara otpočinje message loop, samo treba pripaziti da se u aplikaciji nekada pozove i Application.Exit(); kako bi ugasili aplikaciju.

U VS 2005 je moguće postaviti property aplikacije Shutdown Mode na "When last form closes", tako da gašenje main forme ne izaziva i gašenje aplikacije.

[Ovu poruku je menjao IdeaR dana 11.04.2006. u 22:12 GMT+1]
[ logic_rabbit @ 12.04.2006. 09:29 ] @
Cini se da onaj kod sto si napisao ideaR funkcionise samo daj mi jos sta je u
proceduri ShowSplashScreen() ?
Daj mi taj kod?
[ IdeaR @ 12.04.2006. 13:28 ] @
Ništa posebno, nema potrebe da c/p kod koji je podug, - klasičan spash form se prikazuje a ispod se iscrtava MainForm.

Znači u Show() instanciram objekat _SpashScreen, postavim dužinu trajanja splash forme.
U Hide() je Close() forme.

[ logic_rabbit @ 13.04.2006. 08:35 ] @
Nerazumem najbolje da ti ostavis taj kod za splash formu tj. ShowSplashScreen() .
[ logic_rabbit @ 13.04.2006. 12:58 ] @
Skontao sam netreba nasao sam i splash screen.Sve radi ok.
To je bolje resenje i od onog sa threadovima iako i ono radi.
[ IdeaR @ 13.04.2006. 14:12 ] @
Drago mi je, ipak je najbolje kada možeš sam da nadođeš na rješenje.

[Ovu poruku je menjao IdeaR dana 13.04.2006. u 15:15 GMT+1]