Stránka 1 z 2
C# nefunguje načítaní minut
Napsal: 24 črc 2014 19:50
od Skelller
Ahoj. Potřeboval bych poradit. Jsem úplný začátečník v C# a hází mi to chybu: Cannot Implicitly convert type "string" to "int".
Je to přesně v téhle části kodu:
Prosím kohokoliv o radu.
Re: C# nedaří se mi konvert z string na int
Napsal: 24 črc 2014 19:53
od Tomasb98
zkus to napsat tak to
Kód: Vybrat vše
int minuta = Convert.ToInt32(label4.text);
Re: C# nedaří se mi konvert z string na int
Napsal: 24 črc 2014 19:56
od Skelller
Wow super díky moc :) Radši to nechám otevřené kdybych v tom malém projektu měl nějakou chybu zase se kterou bych si nevěděl rady.
Re: C# nedaří se mi konvert z string na int
Napsal: 24 črc 2014 20:00
od Tomasb98
Není zač, jinak tohle je docela dobrá stránka
http://www.dotnetperls.com/ a nebo přímo
msdn.
A naopak se to převádí zase takto
Re: C# nedaří se mi konvert z string na int
Napsal: 24 črc 2014 20:16
od Skelller
Ahoj, tak zase znova

Tentokrát jde o část Label3. Sekundy se mi už načítaji (má to být jako alfa verze stopek, jenom zatím dělám načítání čísel) Ale minuty mi nefungují. Kdyby chtěl někdo celý kod tak tady je.. :
Kód: Vybrat vše
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace hodiny
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void maskedTextBox1_MaskInputRejected(object sender, MaskInputRejectedEventArgs e)
{
}
private void label1_Click(object sender, EventArgs e)
{
}
private void label3_Click(object sender, EventArgs e)
{
int minuta;
minuta = Convert.ToInt32(label4.Text);
label4.Text = ToString();
if (label4.Text == "60")
{
for (minuta = 00; minuta <= 60; minuta++)
{
label3.Text = "00";
System.Threading.Thread.Sleep(60000);
label3.Text = "0" + minuta.ToString();
if (minuta >= 10)
{
label3.Text = minuta.ToString();
}
label3.Refresh();
}
}
}
private void label4_Click(object sender, EventArgs e)
{
dalsikarta:
for (int sekunda = 00; sekunda <= 60; sekunda++)
{
label4.Text = "00";
System.Threading.Thread.Sleep(1000);
label4.Text = "0" + sekunda.ToString();
if (sekunda >= 10)
{
label4.Text = sekunda.ToString();
}
label4.Refresh();
}
goto dalsikarta;
}
}
}
PS: Minuty ve kterých je chyba jsou ten Label3
Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 20:58
od Tomasb98
nechceš poslat spíš v rar celý projekt a když na něco přijdu tak bych ti to poslal zpět s komentářem...
Mě teda na ty stopky přijde lepší použít timer časovač.
Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:00
od Skelller
Určitě je milion lepších možností, já pouze využivám to co jsem se naučil z internetu a knížek (dělal jsem hlavně v konzoli, takže skoro vůbec nevím o tom toolboxu co tam je:) Jsem zvyklý na příkazy)
--- Doplnění předchozího příspěvku (24 Črc 2014 21:01) ---
Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:07
od Tomasb98
Ano ale fakt není dobrý způsob

musel jsem to vypnout přes správce...
Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:08
od Skelller
Já ti věřím

Fakt? Já jenom alt f4. Asi hodně špatný způsob co
Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:11
od CZechBoY
Jo přes timer mnohem lepší. To pozastavování hlavního threadu je fakt hrozný... celou dobu totiž neodpovídá a nemůžu ani zobrazit okno programu

Buď udělej novej thread v kterým budeš aktualizovat každou sekundu form a data nebo použij hotovou komponentu - timer.
Mě stačilo vypnout to přes stop ve visual studiu

Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:11
od Tomasb98
Alt F4 jsem nezkoušel ale pochybuji že by to tím šlo ...
No teď tu je jeden zkušenější tak ti snad poradí.
Vypnout to přes VS mě nenapadlo.

Re: C# nefunguje načítaní minut
Napsal: 24 črc 2014 21:15
od CZechBoY
Prej zkušenější

jsem v C# nedělal zas nějakej ten rok

Jo ještě to goto dej pryč, vůbec nechápu proč tam je.
Jdeš na to asi úplně špatně nebo já jdu na čtení úplně špatně

Jak to má fungovat?
Já si představuju stopky s funkcí START (nevidím tlačítko start) a STOP, případně PAUZA.
Takže ti stačí jedna funkce na inkrementaci (přičítání jedničky) sekund. Když bude hodnota 60 tak zvýšíš minuty o 1 a sekundy nastavíš na 1. Kdybys chtěl měřit ještě hodiny tak zkontroluješ potom jestli minuty nejsou 60 atd.