När jag laddar in Form1 så tar det ganska så lång tid, därför så laddar jag också Form2 Du bör nog lägga med en timer eller nåt så att du kan få lite events. nu så uppdaterar ju inte formen sig + att det nog går ganska fort.. Jo jag har testat denna innan. <code> Detta är väldigt märkvärdigt. Du skall använda Invoke på formulär objektet för att anropa koden som uppdaterar progressbaren. Är det nåt sånt här du försöker göra? Tack för att ni försöker hjälpa mig, men här slår jag tydligen huvudet i taket. Japp, jag har laddat ner filen, men det är ju inte bara att kopiera och klistra in, då är man ju helt ute. Jag vill försöka att förstå vad som händer, och sedan ändra så att det passar mina syften. Först då kan det ju vara någonting, eller hur? Tack Arathorn. Det den gör att den sparar lite grejer nere i registret. Det behöver du ju inte göra om du inte vill. Dessa borde vara enkla att hårdkoda i koden eller läsa nån annanstans ifrån istället. Det görs i metoden ReadIncrements. Sen sparar han grejerna i StoreIncrements. Om jag fattar det hela rätt så sparar han nåt typ av snitt hur lång tid det har tagit i genomsnitt varje gång för att på så sätt kunna justera progressbaren.Om timer och progressbar.
som innehåller en label och en progressbar.
Jag ville att progressbaren skall flytta sig efter tiden (eller ett fast värde)
<code>
progressBar1.Minimum = 0;
progressBar1.Maximum = 20;
progressBar1.Step = 1;
for (int i = 0; i <= 20; i++)
{
timer1.Start();
progressBar1.PerformStep();
info.Refresh();
info.Text="Ansluter till SQL Server: " + "klockan " + DateTime.Now.ToString("HH:mm:ss");
}
</code>
Vad som händer är att progressbaren går till fullt värde med en gång.
Hur bör jag göra?(hittar ingenting använtbart på nätet).Sv: Om timer och progressbar.
lite links:
http://msdn.microsoft.com/library/en-us/cpref/html/frlrfsystemwindowsformsprogressbarclassvaluetopic.asp?frame=trueSv: Om timer och progressbar.
Enligt vad jag förstår, så skall man lägga till en timer först(timer1)
Därefter:
<code>
private Timer time = new Timer();
</code>
redan här ett fel
<code>
E:\SAW_Registrering\SAW_Registrering\Form2.cs(21): 'Timer' is an ambiguous reference
</code>
Jag har tagit bort alla referenser till time1, vet inte om det var fel eller rätt.
InitializeMyTimer() ligger under InitializeComponent();
Sedan har jag bara kopierat classerna.
Det blir något fel...Sv: Om timer och progressbar.
public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.Timer timer1;
private System.Windows.Forms.ProgressBar progressBar1;
private System.ComponentModel.IContainer components;
public Form1()
{
//
// Required for Windows Form Designer support
//
InitializeComponent();
InitializeMyTimer();
}
private void InitializeMyTimer()
{
// Set the interval for the timer.
timer1.Interval = 250;
// Connect the Tick event of the timer to its event handler.
timer1.Tick += new EventHandler(IncreaseProgressBar);
// Start the timer.
timer1.Start();
}
private void IncreaseProgressBar(object sender, EventArgs e)
{
// Increment the value of the ProgressBar a value of one each time.
progressBar1.Increment(1);
// Determine if we have completed by comparing the value of the Value property to the Maximum value.
if (progressBar1.Value == progressBar1.Maximum)
// Stop the timer.
timer1.Stop();
}
....
</code>Sv: Om timer och progressbar.
Om jag använder mig av din kod, så händer ingenting, men om jag lägger dit en MessageBox, då får den fart.
<code>
progressBar1.Increment(1);
// Determine if we have completed by comparing the value of the Value property to the Maximum value.
// MessageBox.Show("japp");
if (progressBar1.Value == progressBar1.Maximum)
// Stop the timer.
timer1.Stop();
</code>
Hur kommer jag förbi det?Sv: Om timer och progressbar.
Man får inte direkt från en annat tråd (vilket är vad en timer invokerar sitt event från) uppdatera kontroller i ett formulär, utan det är bara huvudtråden som får göra det.
Kolla på Form.Invoke och MethodInvoker i hjälpen.Sv: Om timer och progressbar.
http://www.codeproject.com/csharp/PrettyGoodSplashScreen.aspSv: Om timer och progressbar.
Vad jag ville göra är följande:
Om min SQLServer är igång, så skall Form1 laddas, där har jag inga som helst problem.
Om nu inte SQLServern är igång, då skall den startas, inga problem där heller. Det
tar dock en stund att starta up server, så där för så laddar jag upp Form2 under tiden.
Och här hade jag velat ha en progressbar, under tiden som SQLServern startas.
När sedan servern har startat, då dödar jag Form2, heller inga problem.
Så det jag frågar efter, kan synas som lite ögongodis, men dt är ju det som skiljer agnarna och ......Sv: Om timer och progressbar.
Sv: Om timer och progressbar.
Den blev kanonbra, och innehöll fler funktioner än vad jag hadde tänkt :-)
Jag är fortfarande lite bryd varför den skall in i registret, men det löser sig nog.Sv: Om timer och progressbar.
Rätt smart, men kanske overkill. Du kan ju istället för att spara sakerna i registret spara dem i settingsfil eller nåt istället. Alternativt så skiter du i "själv kalibreringen"...
och tar bort allt onödigt tjafs...