PicturBox

Alfred_

Erfahrenes Mitglied
Hi,
ich suche verzweifelt nach einer Lösung, wie ich PicBoxen mit Variablen (Zahlen) füllen kann.
In VB6 war das relativ einfach:
Code:
pBox6(0).CurrentX = 40: pBox6(0).CurrentY = 0 'Position des Ausdrucks
pBox6(0).Print a
Wie funktioniert das in vbExpr2005 ?
Irgendjemand wollte mir auch erzählen, dass PicBoxen nicht mehr gelöscht werden, so wie es in VB6 üblich war, weil die Inhalte vor dem Einlesen neuer Werte gespeichert werden.
Code:
'Picturboxen löschen
For x = 0 To 7
  pBox6(x).Cls
 Next x
Stimmt das?
Im Archiv habe ich nichts passendes gefunden, weshalb ich Euch um Unterstützung ersuche.
Danke
 
Du kannst dir von der PictureBox via CreateGraphics() ein Graphics-Objekt holen und dort via DrawString() einen String "hineinmalen". Weiters könntest du auch die Text-Eigenschaft ausprobieren, ob das zu dem von dir gewünschten Ergebnis führt.
 
Hi,
danke für die grundlegende Richtung. Aber wie Du unschwer vermuten wirst, bin ich in dieser Frage völlig unbelastet. Kofler's "Visual Basic 2005" hilft mir auch nicht weiter.
Wenn Du mir ein Beispiel posten könntest?
Danke!
 
C#:
Graphics g = this.pictureBox1.CreateGraphics();
g.DrawString("2", new System.Drawing.Font("Arial", 12), new SolidBrush(Color.Black), 0, 0);
 
Danke,
einer aus der "Grazbachgasse" grüßt Dich recht herzlich!
PS.: Die beiden letzten Argumente sind die X/Y-Koordinaten?
 
Hi,
irgend etwas mache ich da falsch. Ich habe den Verweis "System.Drawing" aktiviert und trotzdem erscheint mir die Zahl 2 nur ganz kurz beim Aufruf der Form und verschwindet sofort wieder.
Da mir Dein Beispiel bei der 1. Zeile eine Warnung ausgegeben hat, versuchte ich es zu modifizieren, was möglicherweise die Ursache ist :confused:
Norbert Eder hat gesagt.:
C#:
Graphics g = this.pictureBox1.CreateGraphics()
g.DrawString("2", new System.Drawing.Font("Arial", 12), new SolidBrush(Color.Black), 0, 0)
Code:
    Dim g As Graphics
    g = Me.PicBox1.CreateGraphics()
    g.DrawString("2", New System.Drawing.Font("Arial", 12), New SolidBrush(Color.Black), 0, 0)
Bei dieser Gelegenheit wollte ich fragen, ob der String "2" auch durch eine Variable + plus Konvertierung ersetzt werden kann, weil ich in den PicBoxen Variable (Single) "hineinmalen" möchte.
Labels und Textboxen sind für meine Zwecke zu schwerfällig.
Grüße
 
Inwiefern schwerfällig?

Und ja, du kannst da natürlich eine Variable hineinstecken. Wenn du eine Integer Variable myInt hast, kannst du einfach myInt.ToString() aufrufen und bekommst dafür eine Stringrepräsentation zurück.

Welche Warnung hast du erhalten?
 
Hi,
wenn ich g als Graphics nicht deklariere, bekomme ich die Fehlermeldung:
Fehler 1 "Graphics" ist ein Typ und kann nicht als Ausdruck verwendet werden
wenn ich g als Graphics deklariere, bekomme ich die Fehlermeldung wie oben und:
Fehler 2 Der =-Operator ist für die Typen "System.Drawing.Graphics" und "System.Drawing.Graphics" nicht definiert.
Da ich Kombinationen ( ~ 215 Mio.) generiere und auf bestimmte Muster "abklopfe" ist die Reaktionszeit bei Labels und Textboxen ziemlich zeitintensiv. Selbst wenn ich nur jede hundertT. anzeige.
VB6 erledigt mir das bei einem 2.2 Intel IV mit 1 GB RAM in 1 Stunde!
In VB.Net mit MySQL sollte das eigentlich etwas hurtiger gehen, hoffe ich jedenfalls.
Grüße
 
Hi,
Dein Beispiel funktioniert. Da ich weder ein PicBox1_Paint, noch ein Button benötige, ist mein Problem jedoch nach wie vor nicht gelöst. Ob es damit zusammenhängt, dass ich keinen "Windows Form Designer" verwendet habe, kann ich nicht beurteilen, da ich davon zuwenig Ahnung habe.
Code:
        Dim g As Graphics
        g = Me.PictureBox1.CreateGraphics()
        g.DrawString("200", New Font("Arial", 12, FontStyle.Bold), New SolidBrush(Color.Black), 0, 0)
Diese Zeilen rufen weder einen Fehler, noch Warnungen hervor, allerdings verweigert er das "Malen".
Ich werde dieses Problem einmal ad acta legen, weil es nicht so dringend ist und wenn ich "innerlich" etwas zur Ruhe gekommen bin, nochmals darüber brüten.
Ich danke Dir jedenfalls recht herzlich für Deine Mühe!
Alfred
 

Neue Beiträge

Zurück