Hallo, ich habe folgendes problem:
In visual basic 2010 express
möchte ich, dass:
wenn man auf einen button klickt, startet der timer und lässt eine progressbar voll laufen, aber wie stoppe ich den timer, ohne noch einmal einen button zu betätigen
( wenn die progressbar voll ist, soll der timer automatisch stoppen)
Danke schonmal im vorraus ;)
Update:danke, wäre ich schon level2, würde ich dich gut bewerten :(
Copyright © 2024 Q2A.MX - All rights reserved.
Answers & Comments
Verified answer
du kannst innerhalb dr timer function eine bedingung einbauen, die den timer stoppt, zb wenn der progressbar 100% erreicht hat.
innerhalb eines objekts kannst du auf dessen daten und methoden in vb mit dem 'me' keyword zugreiffen.
also so:
me.stop()
+++++
nope, wenn du das machst:
if progressBar1.Value = Maximum Then Timer1.stop()
solltest du nen fehler bekommen, so in der art "objekt Timer1 unbekannt". zumindest sinngemaess, ich hab ewig kein vb mehr benutzt. kommt auch drauf an, wo Timer1 definiert ist
es muesste etwa so gehen:
if progressBar1.Value = Maximum Then Me.Stop()
aber unter umstaenden ist da der fehler schon passiert. wenn der wert zu hoch ist, darf man ihn vielleicht dem progressbar.value gar nicht erst zuweisen.
also besser schon vorher anhand des berechneten wertes pruefen...
Hab das mal kurz in C# programmiert VB geht entsprechend. Kann man 1:1 übersetzen. Hab leider kein VB hier
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 WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Timer starten
private void button1_Click(object sender, EventArgs e)
{
timer1.Enabled = true;
}
private void timer1_Tick(object sender, EventArgs e)
{
// progressbar hochzählen bis maximum erreicht ist.
// Dann Timer wieder abschalten.
if (progressBar1.Value >= progressBar1.Maximum)
{
progressBar1.Value = 0;
timer1.Enabled = false;
}
else
progressBar1.Value = progressBar1.Value + 1;
}
}
}
getestet und läuft
@toxy ist so wenn ein Progressbar progressBar1.Value > progressBar1.Maximum zugewiesen wird, dann wird eine Exeption ausgelöst.
OK
Habs kurz auf Basic umgeschrieben
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If (ProgressBar1.Value = ProgressBar1.Maximum) Then
Timer1.Enabled = False
ProgressBar1.Value = 0
Else
ProgressBar1.Value = ProgressBar1.Value + 1
End If
End Sub
End Class
VOR den eigentlichen T. noch einen ersten Timer schalten.