Fragensteller
PictureBox Text ausgeben

Frage
-
Hallo zusammen,
wir sollen in der Schule ein Programm schreiben, in welchem man mit einem Button 2 verschiedene Zufallszahlen erzeugen kann, diese in 2 Labels ( oder Pictureboxen ) darstellt. Mit Labels hab ich es hinbekommen, ich kann sogar die 2 Zahlen auf Gleichheit, oder Größer und Kleiner untersuchen und anderweitige Befehle dazu ausfürhen. Einige behaupten jedoch, dass man die Zahlen auch in Pictureboxen darstellen kann, wenn man diese entsprechend als String convertiert. Das hab ich bis jetzt jedoch noch nicht geschafft. Pictureboxen sind doch eigentlich nur zum Anzeigen von Bildern gedacht, oder ?
Alle Antworten
-
Hi,
man kann das schon machen. Ob man das will, ist eine andere Frage :)
http://stackoverflow.com/questions/849359/how-to-draw-text-on-picturebox
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community- Als Antwort vorgeschlagen Holger M. Rößler Mittwoch, 7. Dezember 2011 00:00
-
Ich habe mal so angefangen ( zahl3 und zahl4 sind die jeweiligen Pictureboxen ), die auskommentierten Zeilen kannst ruhig mitinterpretieren, sind Versuche gewesen:
private void neu_Click(object sender, EventArgs e)
{
Random z = new Random();
zahle = Convert.ToString(z.Next(1, 10));
zahl4.
// string zahl111 = zahle.ToString();
//zahl1.Text = zahl111;
//zahle = zahl4;
zahle2 = Convert.ToString(z.Next(2, 10));
// zahl3 = zahle2;
} -
In meinem vorigen Posting steht ein Link. In dem Posting, dass Du dort findest, steht ein komplettes Codebeispiel. Welches Problem hast Du denn konkret damit?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hallo andes135,
es ist im Prinzip recht simpel. Du erzeugst deine Zufallszahlen, holst dir von jedem der beiden PictureBoxen das jeweilige Graphics Object (Methode CreateGraphics()). Das Graphics Objekt kannst du dir wie einen Stift vorstellen, der in "sein" Control zeichnen kann.
Um nun einen Text zu zeichnen, verwendest du die Methode "DrawString" (http://msdn.microsoft.com/de-de/library/46c36z9t(v=VS.100).aspx) des Graphics Objekts. Vergiss bitte nicht, die Graphicsobjekte am Schluss zu disposen, sonst fängst du dir memleaks ein ;-)
Ich hoffe ich konnte dir weiterhelfen. Solltest du noch Fragen haben, immer her damit! ;-)
Viele Grüße
Holger M. Rößler
Kaum macht man es richtig, schon funktioniert es- Als Antwort vorgeschlagen Holger M. Rößler Dienstag, 6. Dezember 2011 23:58
-
Hallo Holger,
ich habe das jetzt mit Labels realisiert und so fuktioniert es auch. Schulkollege hatte die Aufgabenstellung nicht mehr richtig im Kopf.
Nun habe ich noch eine Frage und zwar, wenn ich z.Bsp. auf einen Startbutton drücke, soll die Form ( die grafische Oberfläche ), neu geladen werden. Also die Labels und Buttons, die eine Hintergrundfarbe bekommen haben sollen wieder in den Ursprungszustand versetzt werden. Ich glaube, das geht mit Form1_Load. Weiß aber nicht so recht, wie ich das anstellen soll.....
-
Hi andes135,
ich habe das jetzt mit Labels realisiert und so fuktioniert es auch. Schulkollege hatte die Aufgabenstellung nicht mehr richtig im Kopf.
um welches Control es sich hierbei handelt, spielt keine Rolle. Es funktioniert bei allenen gleich, egal ob Label oder PictureBox ;)
Nun habe ich noch eine Frage und zwar, wenn ich z.Bsp. auf einen Startbutton drücke, soll die Form ( die grafische Oberfläche ), neu geladen werden. Also die Labels und Buttons, die eine Hintergrundfarbe bekommen haben sollen wieder in den Ursprungszustand versetzt werden. Ich glaube, das geht mit Form1_Load. Weiß aber nicht so recht, wie ich das anstellen soll.....Nei
Nein, im gegensatz zu Webseiten wird die Form1_Load nur einmal, eben beim Laden der Form, aufgerufen. Ich verstehe ehrlich gesagt nicht, wo euer Problem liegt. Anstelle von Form1_Load könnt ihr diesen Event doch im EventHandler des Click-Events eures Buttons behandeln. Ich werdet wohl nicht drumrumkommen eure Controls wieder per Hand zurückzusetzen, was aber auch nicht sooo schwierig sein sollte.Tipp von mir: Erstellt eine Methode, in der ihr die Controls initialsiert (also in den "Ursprungszustand" versetzt) werden, und ruft diese einfach beim Click-Event eures Buttons auf.
Solltest du noch fragen haben...immer her damit :)
Viele Grüße
Holger M. Rößler
Kaum macht man es richtig, schon funktioniert es- Bearbeitet Holger M. Rößler Sonntag, 4. Dezember 2011 11:11
-
Hallo andes153,
ja, du kannst public void verwenden.
Zum zurücksetzen, holst du dir die Controls von deren ControlContainer (der Form z.B. wenn diese direkt auf der Form liegen), und setzt deren Eigenschaften auf den Standardwert zurück. Welche Ihr jetzt zurücksetzen wollt, kann ich natürlich nicht wissen, aber das ist die Vorgehensweise dafür.
Viele Grüße
Holger M. Rößler
Kaum macht man es richtig, schon funktioniert es -
nun ja, die buttons z.bsp. haben beim starten des programmes die farbe color.control. nachdem ja dem button irgendwann eine hintergrundfarbe zugewiesen bekommt, möcht ich dass der button beim klicken des "start-button" wieder in den ursprungszustand zurück gesetzt wird. genauso auch bei den labels. aber bei coloreigenschaften gibt es die "control"-farbe leider nicht.