vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Re: Bildbereiche als Button nutzen 
Autor: Oly
Datum: 24.09.13 23:09

Super, damit komme ich weiter,
vielen Dank!!!

gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Bildbereiche als Button nutzen 
Autor: Oly
Datum: 21.09.13 23:20

Halo zusammen,
wie kann ich von einem Bild (eingebettet in einer Picturebox) Bildbereiche als Button nutzen? Wie erstellt man so etwas?
Als Beispiel, die Erde als Bild in der Box. Klickt man auf Afrika so erscheint die Form Afrike, Europa die Form Europa usw.
Wie ist so etwas machbar?

Gruß
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildbereiche als Button nutzen 
Autor: Manfred X
Datum: 21.09.13 23:50

Hallo!

Das hängt von der Gestaltung Deines Bildes ab.

Unterscheiden sich die Farben, in der die Kontinente
dargestellt sind, ermittelst Du im MouseDown-Eventhandler
die Position des Clicks im Bild (EventArgs->Location) und
anhand der Farbe des Bild-Pixels an dieser Stelle
(z.B. per GetPixel-Methode der Bitmap, die das Bild enthält)
kann der angeclickte Erdteil zugeordnet werden.






Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildbereiche als Button nutzen 
Autor: Oly
Datum: 22.09.13 00:40

Hallo Manfred,

momentan ist es noch ein schwarz weiss Bild und es wird in mehrere Rechtecke aufgeteilt werden. So sollte es sein. Die einzelnenBereiche wollte ich farblich unterteilen. Dann würde e s ja mit getpixel funktionieren sofern ich keine schwarze Trennungslinie treffe. Kann man auch einen RechteckbBereich markieren ohne die Farbe abzufragen?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Bildbereiche als Button nutzen 
Autor: GPM
Datum: 22.09.13 10:20

Ja, Du kannst Bereiche festlegen und diese mit .Contains(Mauspositon) testen.

Public Class Form1
    Dim WithEvents Pb As New PictureBox With {.Dock = DockStyle.Fill, _
      .BackColor = Color.Black, .Parent = Me}
    Dim rlist As New List(Of Rectangle)({New Rectangle(10, 10, 100, 100), New _
    Rectangle(20, 120, 100, 100), New Rectangle(130, 50, 100, 100)})
    Dim nr As Int32 = -1
 
    Private Sub Pb_MouseDown(sender As Object, e As _
      System.Windows.Forms.MouseEventArgs) Handles Pb.MouseDown
        For i As Int32 = 0 To rlist.Count - 1
            If rlist(i).Contains(e.Location) Then
                nr = i
                Pb.Invalidate()
            End If
        Next
    End Sub
 
    Private Sub Pb_Paint(sender As Object, e As _
      System.Windows.Forms.PaintEventArgs) Handles Pb.Paint
        For i As Int32 = 0 To rlist.Count - 1
            If nr = i Then
                e.Graphics.FillRectangle(Brushes.Yellow, rlist(i))
            Else
                e.Graphics.FillRectangle(Brushes.White, rlist(i))
            End If
        Next
    End Sub
End Class
MfG GPM
0
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel