C# Vliv rychlost – .NET – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

C# Vliv rychlost – .NET – Fórum – Programujte.comC# Vliv rychlost – .NET – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
Crooker0
Duch
3. 9. 2012   #1
-
0
-

Zdravim,

(nadpis je mozna zavadejici, nevim jak strucne a vystizne to napsat)

mám problém s "rychlost" programu, který mě náhodně vygeneruje 10 čísel (DigitCount) a přiřadí do náhodných 10 polí ze 100. Problém je, že pokud nechám program spustit, tak vygeneruje "náhodný" počet čísel (někdy 5, někdy 1, někdy 10). Pokud začnu program projíždět krok po kroku a jedu pomalu (např. krok za sekundu), vygeneruje vždy všech 10 čísel, jakmile začnu projíždět rychleji, nastává původní problém.

Podmínka IF (1) kontroluje, jestli uz neni do daneho textboxu vlozeno nejaké číslo.

Pokud je příkaz na vložení (2) uvnitř IF (1), program nefunguje jak má, pokud je mimo if (2b), tak vše jede opet jak má.

for (int i = 1; i <= DigitCount; i++)
	{
	int Digit = Rand.Next(1, 11);
        int Vertical = Rand.Next(1, 11);
        int Horizontal = Rand.Next(1, 10);

        string Name = "Cislo" + Horizontal.ToString() + Vertical.ToString();

       	TextBox CisloXY = this.Controls.Find(Name, true).FirstOrDefault() as TextBox;

        if (CisloXY.Text == "")(1)
               	{
                CisloXY.Text = Digit.ToString();(2a)                
                }
        else
                {
                i--;
                }
        //CisloXY.Text = Digit.ToString();(2b)
        }

Co může v kódu dělat problém? Žádná chybová hláška nevyskakuje.

Díky za odpověď.

(Doufám, že je to pochopitelné.)

Nahlásit jako SPAM
IP: 85.70.207.–
Řešení
ingiraxo+15
Grafoman
4. 9. 2012   #2
-
+1
-
Zajímavé
Vyřešeno Nejlepší odpověď

imho to máš zbytečně složitě.. jde to udělat lépe a pokud jsem pochopil, tak ty tam máš cca 20 TextBoxů a chces pulku z nich náhodně naplnit čísly? 

        private void Generate()
        {
            int n = 0;
            foreach (Control c in Controls) c.Text = null; // vynuluje objekty

            do
            {
                // pro 8 textboxů
                Control c = Controls.Find("textbox" + r.Next(1, 9), true)[0];

                if (c.Text != "") continue;

                c.Text = r.Next(10, 99).ToString();
                n++;
            }
            while (n < 4); // naplni pouze pulku z nich
        }

je to dělaný ted na rychlo, ale mělo by to fungovat, sice existujou lepší způsoby, ale to zas záleží k čemu to přesně bude...

Nahlásit jako SPAM
IP: 213.168.183.–
Moje aplikace: http://ophite.cz
Tutoriály na: C#
Crooker0
Duch
4. 9. 2012   #3
-
0
-

Díky za pomoc

Nahlásit jako SPAM
IP: 85.70.207.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 7 hostů

Podobná vlákna

Rychlost — založil Luckin

Rychlost — založil Zelenáč

Rychlost Timeru — založil Martin Morawiec

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý