Zdravím. Snažím se konečně o prográmek, který by mi byl užitečný :-).
Uživatel by si měl zadat čas vypnutí pomocí numericUpDown -> nastavit sekundy, minuty a hodiny. Postup tohoto by se měl zobrazovat pomocí progressBaru a samotný vzrůstající čas (HH : MM : SS) pomocí labelu.
Jelikož je to moje první věc, pracující s progressBarem i s Timerem (a abych řekl pravdu, inspiroval jsem se všude možně..), výsledek vypadá "vtipně".
Práce je na tom (pro mě) hodně, proto bych potřeboval trošku nakopnout.
1) Rád bych zjistil, jestli je možné že mi bude to vypnutí fungovat (mám na mysli konkrétně ten jeden řádek s Process.Start..). Abych se tu nehnal za něčím a na konci zjistil, že to stejně musí vypadat úplně jinak.
2) Nějak bych potřeboval "propojit" ten progressBar s tím číselníkem. Doufal jsem, že to půjde pomocí určení progressBar.Maximum a přiřazením celkového počtu vteřin. Bohužel, tak jednoduché to tedy nebude..
No, dost už řečí. Tady přikládám, co jsem zatím spáchal:
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;
using System.Diagnostics;
namespace CasovacPokus
{
public partial class Form1 : Form
{
int hodiny;
int minuty;
int sekundy;
public Form1()
{
InitializeComponent();
}
private void zacitClick(object sender, EventArgs e)
{
progressBar.Value = 0;
if (sekundyCiselnik.Value == 0 && minutyCiselnik.Value == 0 && hodinyCiselnik.Value == 0)
MessageBox.Show("Musíte zadat čas vypnutí!");
else progressBar.Maximum = (Convert.ToInt32(sekundyCiselnik.Value + minutyCiselnik.Value
* 60 + hodinyCiselnik.Value * 3600));
casovac.Start();
}
private void casovacTick(object sender, EventArgs e)
{
sekundy++;
if (sekundy == 60)
{
sekundy = 0;
minuty++;
}
if (minuty == 60)
{
minuty = 0;
hodiny++;
}
if (hodiny == 24)
hodiny = 0;
if (progressBar.Value == progressBar.Maximum)
{
casovac.Stop();
Process.Start("shutdown.exe", "-s -t 00");
}
popisek.Text = ("Čas odpočítávání - " +hodiny.ToString()+ " : " +minuty.ToString()+ " : " +sekundy.ToString());
}
}
}
Předem děkuji za rady, výtky, kopance.... :-)
Zdar