vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 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 - Fortgeschrittene
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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Control 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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Danke (oT) 
Autor: Snof
Datum: 21.03.04 18:41

ohne Text


demn?chst Online: SnofWare.de
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
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