Computerhilfen.de Logo
Forum
Tipps
News
Frage stellen

[VB] Line mit Click Ereignis?

Hallöchen alle zusammen :-)

mich beschäftigt mal wieder eine Frage zu Visual Basic. Ich programmiere hier so eine Art Editor. Ich will einen Frame mit mehreren Elementen zusammen bauen können (Bildern, Texten, Linien und Aktionsfelder). Soweit so gut, die Darstellung klappt, ich kann auch verschiedene Elemente erstellen und auch beliebig viele hinzufügen. Verschieben klappt mittlerweile bei den meisten per Drag and Drop auch (also Bilder und Texte). Nur Linien kann ich nicht verschieben? Der Grund, weil kein Click Ereignis für eine Linie existiert.
Ich wollte nun fragen, wie ich es schaffe, einer Linie entweder ein Click Ereignis hinzuzufügen oder aber etwas anderes drüber legen, was über ein Click Ereignis verfügt und die Form einer Linie hat. Ich wollte es mit einem Shape probieren, aber leider hat ein Shape auch kein Click Ereignis. Kann mir jemand helfen?

Gruß Martin


Antworten zu [VB] Line mit Click Ereignis?:

Hat dir diese Antwort geholfen?

Danke ButtonHilfreiche Antwort Button

hab was gefunden:

Das Shape-Object muss, ob es will oder nicht auf einen
Container gesetzt werden. Und die Container, die ein
Control aufnehmen können verfügen alle über die entsprechenden
Events bezüglich der Maus. Folglich sagt Dir der Untergrund
des Shapes was Sache ist

In dem Beispiel wurde auf eine Form ein rechteckiges Shape
gezogen:

Private Declare Function PtInRect Lib "user32" ( _
lpRect As RECT, _
Byval x As Long, _  
Byval y As Long) As Long
'

Private Type RECT  
  Left As Long  
  Top As Long  
  Right As Long  
  Bottom As Long
End Type
'
Private shRect As RECT
'
Private Sub Form_Initialize()  
  With shRect    
    .Left = Shape1.Left /Screen.TwipsPerPixelX
    .Top = Shape1.Top /Screen.TwipsPerPixelY
    .Right = .Left+Shape1.Width/Screen.TwipsPerPixelX
    .Bottom = .Top+Shape1.Height/Screen.TwipsPerPixelY
   End With
End Sub
'
Private Sub Form_MouseMove(...)  
Dim cx As Long  
Dim cy As Long  
  cx = x / Screen.TwipsPerPixelX  
  cy = y / Screen.TwipsPerPixelY  
  If PtInRect(shRect, cx, xy) Then    
    Msgbox "Mouse in Shape!"  
  End If
End Sub

« [VB] Hintergrundfarbe eines Labels ändern[VB] XMLDOMElement »
 

Schnelle Hilfe: Hier nach ähnlichen Fragen und passenden Tipps suchen!

Fremdwörter? Erklärungen im Lexikon!
BASIC
BASIC steht für "Beginners All Purpose Symbolic Instruction Code", eine der ersten weit verbreiteten Programmiersprachen. Die einfache Anfänger-Sprache hat dazu...

Scart
SCART, ein europäischer Standard für Steckverbindungen, spielte eine wichtige Rolle in der Geschichte der Audio- und Videotechnik. Ursprünglich konzipiert,...

Mainframe
Große Computer, wie sie in Rechenzentren zum Einsatz kommen, und die über Terminals Tausende von Anwender bedienen. Siehe auch Super-Computer...