Abfrage, welche PictureBox geklickt wurde

So, ich habe es doch geschafft, war nicht so einfach. ;-)

Code:
            AddHandler Pictures(Count).Click, AddressOf PictureBoxClicked

Bei der Erstellung muss jeder PictureBox ein seperater Handler mitgegeben werden.

Code:
   Sub PictureBoxClicked(ByVal sender As Object, ByVal e As EventArgs)

        Dim current As PictureBox = DirectCast(sender, PictureBox)

Dieser wird dann so später verwendet. War ein bisschen ausprobieren, aber hat nun schon ganz gut geklappt.

Wie löst man dies am besten mit der ISO-Perspektive? Irgendwie glaube ich, dass dies wesentlich schwieriger ist oder für mich nicht so sehr geeignet ist.

@ Spyke: Sind die Bilder von dir? Darf ich die so einfach verwenden?


Vielen Dank für eure Hilfe!
 
Woher du diese hast ist mir schon klar, ich wollte damit wissen, ob dies deine Seite ist oder ob man die Bilder einfach so verwenden darf?

Du hast ja auch einen Map-Editor erstellt. Hast du dies über PictureBoxen realisiert? Ich bekomme es nicht hin, dass sich zwei PictureBoxen überlappen und teilweise durchsichtig sind und die PictureBox dahinter darstellt.

Ist schon ganz schön herausfordernd, so eine Editor zu programmieren.

Wie speicherst du deine Map denn so ab? Also die Informationen in eine Textdatei und welche Informationen übergebe ich hierbei am besten?

Mfg
 
Blöde Frage, aber nur kurz, wie heißt das Element, dass die Form in zwei unabhängig verschiebbare Teile teilt, wie es auf dem Screenshot von spyke zu sehen ist? Also bei ihm der Teil oben und der Teil ganz unten, hoffe es ist verständlich, was ich meine.

Danke für die Antwort.
 
Danke für die schnelle Antwort Nico.

Ich habe meine Form nun so unterteilt, ich versuch es mal einigermaßen darzustellen, sollen praktisch 3 Teile sein.

___________________
| xxxxxxxxxxxxxxxxxx |xxxxx |
| xxxxxxxxxxxxxxxxxx |xxxxx |
| xxxxxxxxxxxxxxxxxx |xxxxx |
|_____________ |xxxxx |
|______________|____|

Hoffe dies ist verständlich. Die "x" sind nur Platzhalter, da Leerzeichen offenbar entfernt werden.

Die Pictureboxen für den Teil 1 (links oben) werden aber erst zur Laufzeit erzeugt, wie füge ich diese dann dem Container hinzu?

Momentan sieht es so aus wie auf dem Bild. Ich hätte gerne, dass Teil 1 praktisch ein extra Teil ist mit seperaten Bildlaufleisten, wie füge ich diese hinzu?
 

Anhänge

  • Clipboard01.jpg
    Clipboard01.jpg
    45,5 KB · Aufrufe: 28
Du hast ja auch einen Map-Editor erstellt. Hast du dies über PictureBoxen realisiert? Ich bekomme es nicht hin, dass sich zwei PictureBoxen überlappen und teilweise durchsichtig sind und die PictureBox dahinter darstellt.

Ist schon ganz schön herausfordernd, so eine Editor zu programmieren.

Wie speicherst du deine Map denn so ab? Also die Informationen in eine Textdatei und welche Informationen übergebe ich hierbei am besten?

Ich zeichne alles in einer PictureBox da mehrere (viele) PictureBoxen dem Programm die Performance raubten.

Zum speichern der Map habe ich ein Ini ähnlichen (mehr vCal) Aufbau verwendet
(Heute würde ich es über XML oder Binär serialisiert speichern).

Die Pictureboxen für den Teil 1 (links oben) werden aber erst zur Laufzeit erzeugt, wie füge ich diese dann dem Container hinzu?
Mit splitControl.Panel1.Controls.Add die PictureBox dem SplitContainer (Panel1) hinzufügen.

Momentan sieht es so aus wie auf dem Bild. Ich hätte gerne, dass Teil 1 praktisch ein extra Teil ist mit seperaten Bildlaufleisten, wie füge ich diese hinzu?
Bei deinem Container (splitControl.Panel1) AutoScroll auf true.
 
Hallo,

ich habe nun leider neue Probleme:

1. Wie gestalte ich dies mit verschiedenen "Layers" am besten? Da PictureBoxen ja nicht so transparent eingestellt werden können, dass sie eine andere PictureBox durchscheinen lassen (korrigiert mich bitte, falls dies doch möglich ist), würde ich als "Untergrund" eine Schicht Panels erzeugen. Darüber lege ich dann die PictureBoxen, was allerdings noch nicht so richtig klappt, aber gibts hierfür eine bessere Methode, da ich so ja nur 2 Schichten erzeugen kann.

2. Ich habe mir eine Access-Datenbank so eingebunden, dass sie in einem Datagridview geladen wird und so auch zurückgeschickt werden kann. Also man kann in dem Datagrid praktisch die Datenbank bearbeiten. In der Datenbank habe ich nun eine Auswahlliste (Dropdown-Auswahl), dies wird aber nicht in mein DataGrid übernommen, jemand eine Idee, woran das liegt?

3. In der Datenbank lege ich den Pfad zu einem Bild fest, ich schreibe ihn manuell rein, was mir auch noch nicht so gefällt, aber bis jetzt konnte ich keine bessere Lösung finden. Also ich schreibe z.B. rein "My.Resources.Schwert", so ist das Bild auch in dem VB-Projekt vorhanden. Allerdings, wie kann ich diesen String nun mit einer PictureBox verknüpfen?

Code:
        Pic_Waffen.ImageLocation = DataGrid_Waffen.Rows(0).Cells(5).Value

So wird in der PictureBox nur ein rotes X dargestellt. Der Pfad aus dem DataGrid lautet: My.Resources.Dolch und ist so eigentlich korrekt.



Ich bitte um eure Hilfe.
Vielen Dank und mfg
Rockstady11
 
Hallo,

ich habe nun leider neue Probleme:

1. Wie gestalte ich dies mit verschiedenen "Layers" am besten? Da PictureBoxen ja nicht so transparent eingestellt werden können, dass sie eine andere PictureBox durchscheinen lassen (korrigiert mich bitte, falls dies doch möglich ist), würde ich als "Untergrund" eine Schicht Panels erzeugen. Darüber lege ich dann die PictureBoxen, was allerdings noch nicht so richtig klappt, aber gibts hierfür eine bessere Methode, da ich so ja nur 2 Schichten erzeugen kann.

Du könntest den Hintergrund für die PictureBox zur Laufzeit zeichnen über das Paint Ereignis.

Zu 2 und 3 keine Ahnung, ich binde nie direkt Datenbanken an Controls.
 
Zurück