Diskuze: C# WFA Zrušení User Control
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 14 zpráv z 14.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
neznam cely kod ani co je WFA ale kod:
PictureBox newPB = new PictureBox();
Bitmap b = new Bitmap(...);
newPB.Size = new Size(20,20);
newPB.Image = b;
nedava smysl protoze PictureBox je komponenta a ta neni nikde "zobrazena"
WFA = Windows Forms Application
ten problém s tím pictureboxem už jsem vyřešil, ale pořád potřebuju
zjistit, jak danej form uzavřít.Co se kódu týče,tak tady je.
http://leteckaposta.cz/794369122
A jaktože, když dám isClicked na false, stejně se mi otevře to okno a když zavolám TestRuneM, zavřu MessageBox ručně a pak zavolám NewRuneM, tak se mi nejdřív otevře znova MessageBox a pak teprve daný Form? Funguje to i obráceně. Za odpověď předem děkuji.
private void ChooseYourAction(availableActions a)
{
switch(a)
{
case availableActions.NewRune:
isClicked = true;
a = availableActions.Nothing;
NewRuneM();
break;
case availableActions.TestRune:
a = availableActions.Nothing;
TestRuneM();
break;
case availableActions.ShowRune:
a = availableActions.Nothing;
break;
case availableActions.Exit:
Application.Exit();
break;
}
}
private void TestRuneM()
{
Random generateRune = new Random();
runeList[1] = 1;
runeList[32] = 5;
MessageBox.Show(runeList[32].ToString());
//generateRune.Next(runeList);
}
private void NewRuneM()
{
if(isClicked == true)
{
NewRune f = new NewRune();
isClicked = false;
f.Show();
}
}
Form se ti otevira 2x protoze mas 2x registrovany event handler na "Menu" MouseClick (jedenkrat v designeru a podruhe v konstruktoru)
Program se ti nezavira protoze mas spatne poradi v "MsClick" nejdriv musis zjitit co se ma stat a az pak to provest. Ted to mas naopak.
Dalsi vec je ze Random mej jen jednu instanci po celou dobu kdy ti bezi program.
A taky ArrayList se uz nepouziva protoze byl nahrazeny List<>.
Nějak jsem nepochopil co je na tom špatně, mohl by si mi to prosímtě lépe objasnit.
private void MsClick(object sender, MouseEventArgs e)
{
ChoosedAction(choosAction);
if (RctAddRune.Contains(e.Location))
{
choosAction = availableActions.NewRune;
}
else if(RctTestRune.Contains(e.Location))
{
choosAction = availableActions.TestRune;
}
else if(RctShowRune.Contains(e.Location))
{
choosAction = availableActions.ShowRune;
}
else if (RctExit.Contains(e.Location))
{
choosAction = availableActions.Exit;
}
this.Invalidate();
}
no pokud ctu spravne tak metoda(event) ChoosedAction spusti obsluhu udalosti
vyvolane tim ze uzivatel nekam kliknul. metoda je zalozena na datech v promene
choosAction, avsak data jsou do teto promene ulozena az po provedeni metody
ChoosedAction, takze se vlastne nikdy nestane to co by si uzivatel pral .
tak jsem z toho udělal tohle a furt nic, buď jsem úplně blbej nebo mi to
cukroví leze na mozek
private void MsClick(object sender, MouseEventArgs e)
{
if (RctAddRune.Contains(e.Location))
{
choosAction = availableActions.NewRune;
}
else if(RctTestRune.Contains(e.Location))
{
choosAction = availableActions.TestRune;
}
else if(RctShowRune.Contains(e.Location))
{
choosAction = availableActions.ShowRune;
}
else if (RctExit.Contains(e.Location))
{
choosAction = availableActions.Exit;
}
ChoosedAction(choosAction);
this.Invalidate();
}
a co presne ti teda nejde ?
po uprave co jsi tu ted postoval musi fungovat zavreni aplikace ale furt to
bude otevirat 2 okna. ty 2 okna to otevira protoze
"mas 2x registrovany event handler na "Menu" MouseClick (jedenkrat v designeru a
podruhe v konstruktoru)"
dík, tak jsem jenom slepej
a jakej je rozdíl mezi ArrayList a List<> ?
napr. http://stackoverflow.com/…t-in-c-sharp
zjednodusene receno je to to same stim rozdilem ze do jedne instance arraylistu nacpes vsecko jako napr. objekty, int cisla, doule cisla, stringy. zatimco do listu muzes nacpat jen to co je v te ostre zavorce. Kdyz mas List<int> tak tam muzes nacpat jen int kdyz List<string> tak jen stringy. Vyhodu to ma zaprve v tom ze to eliminuje chyby protoze vetsinou chces do jednoho arraylistu cpat jen jeden druh objektu. Druha vyhoda je vyhoda z hlediska vykonu pokud list obsahuje instance typu int/double/float z duvodu boxingu/unboxingu ktery neni u listu narozdil od arraylistu potrebny.
Zobrazeno 14 zpráv z 14.