[VB05] Unendlich Pictureboxen

mafiamix

Mitglied
Hallo,

ich bin gerade dabei, wieder mit Visual Basic 2005 anzufangen und hab ein Problem. Und zwar möchte ich eine Funktion so zuteilen, dass, wenn man zum Beispiel auf Label1 klickt, eine neue Picturebox in der Form gesetzt wird.

Wenn ich die Pictureboxen bereits in der Form hab (Picturebox1, Picturebox2 usw.), dann wär das kein Problem, aber ist es irgendwie möglich, immer automatisch eine neue Picturebox erstellt, ohne dass diese Picturebox sich in der Form befindet?

Also wenn ich dann zum Beispiel auf Label1 klicke, wird eine PictureboxZAHL in der Form erstellt. Bei ZAHL könnte ich es ja auch mit einer Randomzahl machen, aber das einzige Problem liegt am Erstellen von so einer neuen Picturebox.


Danke für Hilfe,

mafiamix
 
Code:
this.Controls.Add(new PictureBox());
this ist in diesem Fall dein Formular, und hier wird einfach eine neue PictureBox der ControlCollection des Formulars hinzugefügt.
 
Danke.
Aber leider wird die Picturebox dann immer an der gleichen Stelle erstellt.
Wenn ich jetzt hier die Koordinaten habe, kann ich sie leider nicht mit dem folgenden Code einbinden:

Code:
   Form1.Controls.Add(Me.Kran1.Location = New System.Drawing.Point(textX.Text, textY.Text + 50))


Weil dann kommt der Fehler:

Der Wert vom Typ "Boolean" kann nicht zu "System.Windows.Forms.Control" konvertiert werden.



Sonst würde alles passen. :/
 
ehm lies dir nochmal ein Anfänger tut durch

Was ich dir an Code gegeben habe soll nur im Prinzip verdeutlichen wie dein Anliegen funktioniert.

Code:
PictureBox pic as New PictureBox
Form1.Controls.Add(pic)

pic.Location = New System.Drawing.Point(Convert.ToInt32(textX.Text), Convert.ToInt32(textY.Text) + 50)
so ungefähr, vielleicht verständlicher

textX und textY sind doch TextBoxen oder?
Dann muss der Wert von Text noch nach Int konvertiert werden, habs in meinem Beispiel gleich mal gemacht.

Warum er bei dir bool Anmeckert liegt daran das die Funktion ein Objekt vom Typ Control erwartet, du aber einen Ist Gleich Vergleich durchführst.
 
Aber wenn ich den Code von dir nehm, dann müsste es zwar gehen, aber dann ist die Picturebox ja immer noch leer.
Und wenn ich
Form1.Controls.Add(me.test)
benutze, dann wird zwar die Picturebox ausgefüllt, nur wird sie nicht bei den jeweiligen Koordinaten angezeigt.
 
dann mach halt noch ein
Code:
pic.Image = irgendwas
Also, bissel denken und Eigeninitiative zeigen solltest du schon wenn du programmieren willst.
 
Also leider funktioniert da irgendwie gar nichts.
Auch wenn ich deine Codes nehm, geht das nicht.
Also ich hab in einer Form2 eine Picturebox (z.B. Box01) und sobald ich auf die klicke, soll in Form1 eine neue Picturebox mit dem gleichen Bild wie Box01 bei den Koordinaten aus den Textboxen X und Y diese Box01 eingefügt werden.
Aber auch mit deinen Codes funktioniert das leider nicht.

Hab auch schon sehr viel rumprobiert, hat aber nie funktioniert. Und Google hilft da auch nicht weiter.

Mit dem Code funktioniert es übrigens auch nicht:

Code:
        Dim picneu As New PictureBox
        Form1.Controls.Add(picneu)
        picneu.Location = New System.Drawing.Point(Convert.ToInt32(textX.Text), Convert.ToInt32(textY.Text) + 50)
        picneu.Image = Form1.testbild1.Image
 
Zuletzt bearbeitet:
Der Code von Spyke passt schon, poste (bzw. häng nen Zip von der Projektmappe dran) doch bitte mal deinen gesamten Code. Mal sehen was da net läuft...
 
Hi,


du mußt deiner neuen PBox noch eine Size geben.
sonst ist die Größe (100,50) und damit könnte sie unter Umständen unter deiner anderen pBox liegen.
Keine Ahnung wie groß deine andere PBox ist.


sowas wie neuPBox.Size = testbild1.Size;


mfg
Martin
 

Neue Beiträge

Zurück