Diskuze: metoda po vykresení formu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Člen
Zobrazeno 11 zpráv z 11.
//= 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.
Použi Timer a tam event Tick, odpočítej si 2 sekundy a potom incrementuj ProgressBar
Hm to jsem samozřejmě použil, ale progresBar se inkrementuje, až po průchodu celou metodou tick, mám na mysli graficky.
Hm to jsem samozřejmě použil, ale progresBar se inkrementuje, až po průchodu celou metodou tick, mám na mysli graficky.
už jsem na to došel musel jsem vykomentovat Application.EnableVisualStyles();
Chlapi potřeboval bych poradit jak mám toto vyřešit. Ten poťáplí form se mi zobrazí, až i s vykresleným progresbarem. Jak to udělat?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
using System.Runtime.InteropServices;
using System.IO;
using System.Diagnostics;
using System.Threading;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
//Timer timer1 = new Timer();
bool regKlic = false;
public Form1()
{
InitializeComponent();
regKlic = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{33A2B31D-875D-463F-BC69-7B7BAB119A84}", true) != null;
}
private void Form1_Load(object sender, EventArgs e)
{
label1.Text = "Vyhledávám předchozí verze programu.";
prvniProgres();
}
private void prvniProgres()
{
Thread.Sleep(2000);
for (int i = 0; i < 5; i++)
{
progressBar1.Increment(25);
Thread.Sleep(2000);
}
}
}
}
Skús v tom cykle zavolať metodu Invalidate. Ale niesom si istý či to bude fungovať.
to je mi jasný, že se volá před vykreslením, ale která metoda se volá až po vykreslení? zkoušel jsem i metodu show, ale tam se zase nevykreslil label a progressBar. Tak bych potřeboval poradit jak to zavolat, až po vykreslení formu. Díky za každou radu.
musis to vykreslovanie progres baru hodit na druhe vlakno, vo windows forms mas na to componentu background worker,nebudem pisat ako odtialto to pochopi snad kazdy http://tinyurl.com/d7osmzu
edit: zly link
Do toho cyklu pridej tenhle prikaz:
Application.DoEvents
Ten zpracovava frontu zprav, kterou ty sice plnis, ale nedas ji nikde prostor ke zpracovani, dokud tva funkce prvniProgres() nedobehne, takze se to pak rovnou zpracuje vse najednou a ty nevidis plynulou zmenu.
A jak pise Michal Žůrek - misaz - z Load to prehod do Show.
Supeeeeeeeeeeeeeer dííííííííííííky ted to fachci jak ma jeste jednou dik dobra vilo
Zobrazeno 11 zpráv z 11.