| |
VB.NET - FortgeschritteneControl unter Maus ermittel | | | Autor: Snof | Datum: 21.03.04 15:00 |
| Hi
Wie kann ich das Control ermitteln auf dem sich die Maus grade befindet?
demn?chst Online: SnofWare.de | |
Re: Control unter Maus ermittel | | | Autor: WaldiMaywood | Datum: 21.03.04 15:10 |
| z.B. mit der Methode "GetChildAtPoint":
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As _
System.Windows.Forms.MouseEventArgs) Handles MyBase.MouseMove
Dim obj As Control = Me.GetChildAtPoint(New Point(e.X, e.Y))
If Not obj Is Nothing Then
' ..
End If
End Sub Steve | |
Re: Control unter Maus ermittel | | | Autor: WaldiMaywood | Datum: 21.03.04 15:39 |
| Falls du Prob. beim ermitteln der Controls hast, müsstest du dir auch dazu einmal die Methode PointToClient anschauen.
Bsp. mit einem Timer:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles Timer1.Tick
Dim obj As Control = Me.GetChildAtPoint(Me.PointToClient(( _
Me.MousePosition)))
If Not obj Is Nothing Then
Debug.WriteLine("Current Control: " + obj.Name)
End If
End Sub Übrigens kann man das auch so machen:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As _
System.EventArgs) Handles MyBase.Load
For Each c As Control In Me.Controls
AddHandler c.MouseMove, AddressOf Me.Control_MouseMove
Next
End Sub
Private Sub Control_MouseMove(ByVal sender As Object, ByVal e As _
MouseEventArgs)
Dim obj As Control = CType(sender, Control)
If Not obj Is Nothing Then
Debug.WriteLine("Current Control: " + obj.Name)
End If
End Sub Steve | |
Re: Control unter Maus ermittel | | | Autor: pnrooob | Datum: 10.09.11 00:17 |
| Hi, funktioniert einwandfrei. Ich benutze es, um meinen Usern kurze Infos/ Hilfe in einer kleinen Box anzuzeigen.
Nun habe ich aber eine GroupBox (GroupBox1), in der sich mehrere RadioButtons, ein Label und eine Textbox befinden. Und hier greift der obige Code nicht mehr.
So frage ich ab:
Dim obj As Control = CType(sender, Control)
For i = 0 To 16
If obj.Name.Equals(Split(strErlaeuterung(i), ";")(0)) Then
lblInfo.Text = Split(strErlaeuterung(i), ";")(1)
Else
lblInfo.Text = ""
End If
Next Mein String, in dem die Beschreibungen stehen, hat 17 'Einträge', die wie folgt aussehen:
"NameDesControls;Beschreibung des Controls, bzw Hilfe zu dem Control."
Es werden mir immer schön die Beschreibungen angezeigt, nur nicht bei den vererbten(?) Controls innerhalb der GroupBox.
Hat jemand einen Tipp? | |
Re: Control unter Maus ermittel | | | Autor: pnrooob | Datum: 10.09.11 00:38 |
| Diesen Doppelpost mache ich nur, damit man besser erkennt, dass meine Antwort die Lösung des Problems (meines Eigenen) zeigt!
Hier die Lösung:
In dem Form_Load(...) muss man einfach folgendes hinzufügen:
For Each c As Control In Me.GroupBox1.Controls
AddHandler c.MouseMove, AddressOf Me.Control_MouseMove
Next Die Controls innerhalb einer GroupBox werden in eine eigene Controls-Collection gesammelt und auch darüber angesprochen, habe ich gerade herausgefunden.
Ich hoffe es hilft jemandem. | |
| 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 |
|
|
Neu! sevEingabe 3.0
Einfach stark!
Ein einziges Eingabe-Control für alle benötigten Eingabetypen und -formate, inkl. Kalender-, Taschenrechner und Floskelfunktion, mehrspaltige ComboBox mit DB-Anbindung, ImageComboBox u.v.m. Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
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
|
|