» »

[Visual C#] pomoč - switch in okno

[Visual C#] pomoč - switch in okno

iggy1 ::

Prosil bi za pomoč.In sicer začel sem ravno programirati pa sem naletel na en problem. Hočem sprogramirati gumb numericUpDown. Notri bi imel vrednosti 2,3,4. ko bi kliknil 3 bi zaprl Form2 in odprl Form3. Isto bi imel Form3 ta gumb in bi isto naredil.Se pravi bi odprl Form4 in zaprl Form3.Sprehajal bi se med tremi obrazci. Kako to izvesti?

Neki sem delal pa mi nikakor ne pride

public int i = int.Parse(numericUpDown1.ToString);
            switch (i)
            {
                case i = 3:
                f.Show();
                b.Close();
                case i = 4:
                b.Show();
                f.Close();

            }

Hvala!


[edit: Pri naslednjem odpiranju teme si najprej poglej PREBERI ME: označevanje topicov v oddelku programiranje - snow]
  • spremenilo: snow ()

BlueRunner ::


switch (i) {
    case 3:
        f.Show();
        b.Close();
        break;
    case 4:
        b.Show();
        f.Close();
        break;
}


Sicer pa si poglej sintakso switch stavka v dokumentaciji.

iggy1 ::

Kako pa recimo zaprem obrazec v katerem pišem kodo. A samo Close()???

darkolord ::

ja, Close() al pa this.Close()

iggy1 ::

Hvala lepa za enkrat. Sigurno bo še veliko vprašanj preden izdelam aplikacijo, ki sem si jo zamislil.

iggy1 ::

Nikakor ne morem spremeniti iz tipa Decimal v int tip. Kako to gre?
Ta numericUpDown je tipa decimal. in sicer:

Decimal caseSwitch = numericUpDown1.Value;


switch ( caseSwitch )
{
case 2:
b.Show();
Close();
break;

}

Javi error ("A value of an integral expected"). A mi lahko lepo prosim popravi kodo, da ko bom kliknil na numericUpDown in bom spremenil številko se mi bo odprla ena forma in druga zaprla.Hvala!

BlueRunner ::

Teach Yourself C# in 21 Days
O'Reilly Programming C#
Google: C# how to convert decimal to int
in še prvi rezultat iz Googla: Explicit Numeric Conversions Table
Kako se eksplicitna konverzijo (casting) uporablja, pa je vidno iz same sintakse operaterja (), oziroma razlage kaj casting sploh je.

Ker očitno C# jezika niti pod razno ne poznaš, in, ker ne kaže, da bi v preteklosti že kaj dosti programiral, in, ker očitno ne znaš uporabljati ne Googla, ne MSDN knjižnice, ti priporočam obe zgoraj omenjeni knjigi. Knjige in poštnina iz DE sicer staneta, ampak tako je to, če se ne boš čim prej naučil uporabljati brezplačne vire, ki jih imaš na voljo.

darkolord ::

switch (Convert.ToInt32(caseSwitch))

iggy1 ::

Hvala!

Drugač jih(zaston resurse) znam uporabljati sam mislil sem, da ni glih v convertu problem. Drugač mam pa ene 16 video lekcij, kjer vse lepo razloži in prrikaže. Res je nimam kilometrine sam pravjo počasi se daleč pride. Hvala za vašo pomoč.

mHook ::

Največ se boš naučil, če boš problem rešil sam.

iggy1 ::

private void numericUpDown1_ValueChanged(object sender, EventArgs e)
{
Decimal caseswitch = numericUpDown1.Value;
switch (Convert.ToInt32(caseswitch))
{
case 1:
Form1 a = new Form1();
a.ShowDialog();
this.Close();
break;
}
}

Trudim se že par dni da bi sprogramiral en numericUpDown gumb pa mi nikakor ne rata. Ta koda zdaj odpira forme sam jih kr noče zapirat.A ma kdo kakšno idejo zakaj? Zdaj ko spremenim številko na 1 se mi odpre pravilna forma sam se mi ta trenutna noče zapreti.WHY?

MaCoFaCo ::

Zato ker klic a.ShowDialog() ustavi izvajanje vse dokler se forma ne zapre.
Šele ko se zapre se nadaljuje izvajanje this.Close(); ...

Probaj raje klicat a.Show() namesto a.ShowDialog().

iggy1 ::

Sem probal toda zdaj se mi obe zapreta. Forma ki bi se mi mogla prikazati se mi prikaže za sekundo ter takoj izgine.Še kakšna ideja?

MaCoFaCo ::

Seveda se zapre, če si z this.Close() zaprl "starševsko" oz. "parent" formo.
Kaj bi ti sploh rad naredil?

iggy1 ::

protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

Tole funcijo vedno kliče. Kaj ta funkcija dela?

MaCoFaCo ::

Sprosti pomnilnik.

iggy1 ::

Poglej rad bi imel na Formi nuimericUpDown gumb v katerem bi bile vrednosti 2,3,4 za tri nadstropja. Ko bi bil v drugem nadstropju in bi recimo spremenil v številko 3 bi se drugo nadstropje zaprlo ter 3. odprlo itd.

iggy1 ::

Se pravi če jaz dobro razumem je to zato, ker ko jaz zaprem z fukncijo Close()formo v kateri se nahajam se zanka avtomatsko ustavi ter prekine vse kar bi morala narediti.

darkolord ::

Zakaj pa forme samo ne skriješ?

iggy1 ::

uuuuuuuu good point. Jah kva naj rečem. Najlepš hvala. Zdaj dela kot urca.

iggy1 ::

Dj mi samo še povejte kako dam na formo čas in datum ki se osvežuje iz windowsow.

darkolord ::

postaviš en timer, nastaviš Interval na recimo pol sekunde, potem pa v event od timerja:

label1.Text = DateTime.Now.ToString();


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

C# težava

Oddelek: Programiranje
233465 (2311) mladec
»

VB.streamwriter

Oddelek: Programiranje
12900 (733) P=LN
»

[c#] ukaz radirka

Oddelek: Programiranje
91038 (831) japol
»

[c#] picturebox, slika na sliko

Oddelek: Programiranje
151010 (820) japol
»

[VB2005Pro]Zapiranje in še Eno uprasanje

Oddelek: Programiranje
81077 (1010) UltraTX

Več podobnih tem