"Bewegung ins Programm bringen"
-
Juhu!
Ich hab ein Image, dass ich per x und y Kordinaten in meinem Fenster bewegen kann. Momentan muss ich noch eine Taste drücken, damit es sich bewegt. Wie sage ich dem Programm, dass es das Image automatisch bewegen soll.
Mit ner Schleife hab ich es schon probiert, aber dann stürzt er irgendwann ab. Unter java funtkioniert das glaub ich mit Runable.
Wie aber unter c#?Gruss Gandi
-
Na so ein Zufall, so was in der Art hab ich letzte Woche auch gemacht.
Verstehe aber dein Problem nicht ganz.
Fährt die Grafik aus dem Fensterbereich hinaus?grüße ms
-
Nee, das ist nicht das Problem. Ich möchte, wenn ich das Programm gestartet habe, das die Grafik von alle losfährt. Sprich, so ne Art Schleife indem das Programm die Grafik an der neuen Koordinate neu Zeichnet und das immer wiederholt. Mit ner Schleife funktioniert das aber nicht, da das Programm dann nicht mehr auf andere Events eingehen kann.
Unter java gab es eine repaint-Methode die man immer wieder aufrufen konnte (mit anderen x-Werten). Unter c# hab ich so etwas noch nicht gefunden. Wie bringst du deine Grafik den zum laufen/bewegen.Gruss GAndi
-
Am Beginn meiner Hauptschleife habe ich folgendes:
for ( int i=0; i<200; i++) Application.DoEvents()
Damit bekommst du deine Events.
Aber du hast recht, ein eigener Thread wäre eleganter.
grüße
ms[ Dieser Beitrag wurde am 15.10.2002 um 08:59 Uhr von ms editiert. ]
-
gibts in C# keine Timer?
-
Hallo zusammen !
Ich habe mal ein Codeschnippsel geschrieben, was generell einen Timer initiallisiert und sekundenweise die gegenwärtige Zeit in eine TextBox schreibt.
public Form1() { InitializeComponent(); Timer MyTimer = new Timer(); // Neuer Timer erstellen MyTimer.Tick += new EventHandler(DoTimer); // Tick-Event (jede Sekunde !) mit DoTimer verbinden MyTimer.Interval = 1000; // Timerintervall setzen MyTimer.Start(); // Timer starten } private void DoTimer(Object Sender, EventArgs args) // DoTimer-Funktion { string strTime = DateTime.Now.ToString("r"); // Aktuelles Datum im Datum/Zeit-Format in einen String textBox1.Text = strTime; // und in die TextBox schreiben }
Gruß MacReeg