Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Eventhandling bei deaktivierten Controls

Mitglied: misterdemeanor

misterdemeanor (Level 1) - Jetzt verbinden

17.04.2006, aktualisiert 19.04.2006, 3895 Aufrufe, 1 Kommentar

Windows Forms
.Net 2
Visual Basic 2005

Grützi,

das Problem an sich : Deaktivierte Steuerelemente feuern keine Ereignisse.

Weiß jemand wie man mit einem "Workaround" trotzdem auf die Ereignisse reagieren kann?

Zur Zeit versuche ich da in Richtung des Parents und dem überschreiben dessen Ereignisse an eine Lösung zu kommen, da aber Frischling in VB8...

Im konkreten Fall bei mir geht es darum "eigene" ToolTips auch auf deaktivierten ToolStripItems anzeigen zu können. Sind Sie aktiviert gibt es da keine Probleme ---> MouseEnter-Event...

Eine harte Nuss *gg*

Grüße
Felix
Mitglied: misterdemeanor
19.04.2006 um 15:39 Uhr
So, ich habe es jetzt wie folgt gelöst:

1)Eine Klasse erstellt die von ToolStrip abgeleitet ist.
2)Im Konstruktor wird der zu erstellenden Instanz mittels SetStyle die Eigenschaft EnableNotifyMessage zugeteilt.
2)Die Methode OnNotifyMessage überschrieben.

Nun kann ich in der Sub OnNotifyMessage die Messages direkt von Windows auswerten. Beim WM_MOUSEOVER schaue ich ob /unter den Koordinaten/ (wird der Sub als Parameter übergeben) sich ein /ToolStripItem/ befindet (Mittels GetItemAt(x,y) ).

Somit kann ich auch auf deaktivierten /ToolStripItems/ einen ToolTip anzeigen. Das wiederum auch nur indirekt, da ToolTips /nur/ auf von Windows.Forms.Control - abgeleitete Klassen angezeigt werden (Show und SetToolTip erwarten entsprechendes Argument).

Also hole ich mir mittels den Eigenschaften aus der Bounds-Property des /ToolStripItems/ dessen /Location/ innerhalb seines Containers (dem /ToolStrip/) und rufe die entsprechende Show-Methode des ToolTips auf.

Problem gelöst.

Die Klasse cusToolStrip:
01.
Public Class cusToolStrip 
02.
  Inherits Windows.Forms.ToolStrip 
03.
 
04.
  Const WM_MOUSEOVER = 512 
05.
  Private m_totInstance As New ToolTip 
06.
  Private m_shownToolTip4ItemName As String 
07.
  Private m_ToolTipSettings As List(Of ToolTipSetting) 
08.
  Private SHOWCUSTOMTOOLTIPS As Boolean 
09.
 
10.
  Public Sub New() 
11.
    MyBase.New() 
12.
    Me.SetStyle(ControlStyles.EnableNotifyMessage, True) 
13.
    Me.m_totInstance.Active = False 
14.
    Me.ToolTipSettings = New List(Of ToolTipSetting) 
15.
  End Sub 
16.
 
17.
  Public Property ToolTipSettings() As List(Of ToolTipSetting) 
18.
    Get 
19.
      Return Me.m_ToolTipSettings 
20.
    End Get 
21.
    Set(ByVal value As List(Of ToolTipSetting)) 
22.
      Me.m_ToolTipSettings = value 
23.
    End Set 
24.
  End Property 
25.
 
26.
  Protected Overrides Sub OnNotifyMessage(ByVal m As System.Windows.Forms.Message) 
27.
    Dim tstItem As ToolStripItem 
28.
    Dim x As Integer 
29.
    Dim y As Integer 
30.
    Select Case m.Msg 
31.
      Case WM_MOUSEOVER 
32.
        x = GetHiWord(m.LParam.ToInt64) 
33.
        y = GetLoWord(m.LParam.ToInt64) 
34.
        tstItem = Me.GetItemAt(x, y) 
35.
        If IsNothing(tstItem) Then 
36.
          m_totInstance.Active = False 
37.
          m_shownToolTip4ItemName = String.Empty 
38.
          Exit Sub 
39.
        End If 
40.
        If tstItem.Name = m_shownToolTip4ItemName Then Exit Sub 
41.
        ShowToolTip4Item(tstItem) 
42.
    End Select 
43.
  End Sub 
44.
 
45.
  Private Sub ShowToolTip4Item(ByRef tstItem As ToolStripItem) 
46.
    Dim mes As String = ToolTipSettings.Item(tstItem.Tag).Message 
47.
      m_totInstance.Active = True 
48.
      m_totInstance.ToolTipTitle = ToolTipSettings.Item(tstItem.Tag).Title 
49.
      m_totInstance.ToolTipIcon = ToolTipSettings.Item(tstItem.Tag).Icon 
50.
      m_totInstance.IsBalloon = ToolTipSettings.Item(tstItem.Tag).IsBaloon 
51.
      Dim x = tstItem.Bounds.Left + CInt(tstItem.Width / 1.5) 
52.
      Dim y = CInt(tstItem.Height / 2) 
53.
      m_totInstance.Show(mes, tstItem.GetCurrentParent, x, y, ToolTipSettings(tstItem.Tag).Duration) 
54.
      m_shownToolTip4ItemName = tstItem.Name 
55.
  End Sub 
56.
 
57.
  Public Function GetLoWord(ByVal l As Long) As Integer 
58.
      Return ((l / &H10000) And &HFFFF&) 
59.
  End Function 
60.
 
61.
  Public Function GetHiWord(ByVal l As Long) As Integer 
62.
      Return (l And &HFFFF&) 
63.
  End Function 
64.
End Class
Falls sich wer wunderte was denn ToolTipSedtting ist :

01.
Public Class ToolTipSetting 
02.
  Inherits List(Of ToolTipSetting) 
03.
 
04.
  Private m_Title As String 
05.
  Private m_Message As String 
06.
  Private m_Icon As Windows.Forms.ToolTipIcon 
07.
  Private m_Duration As Integer 
08.
  Private m_IsBaloon As Boolean 
09.
 
10.
  Public Sub New(ByVal Title As String, ByVal Message As String, ByVal Icon As ToolTipIcon, ByVal Duration As Integer, ByVal IsBaloon As Boolean) 
11.
    m_Title = Title 
12.
    m_Message = Message 
13.
    m_Icon = Icon 
14.
    m_Duration = Duration 
15.
    m_IsBaloon = IsBaloon 
16.
  End Sub 
17.
 
18.
  Public Property Title() As String 
19.
    Get 
20.
      Return CStr(m_Title) 
21.
    End Get 
22.
    Set(ByVal value As String) 
23.
      m_Title = value 
24.
    End Set 
25.
  End Property 
26.
  Public Property Message() As String 
27.
    Get 
28.
      Return m_Message 
29.
    End Get 
30.
    Set(ByVal value As String) 
31.
      m_Message = value 
32.
    End Set 
33.
  End Property 
34.
  Public Property Icon() As ToolTipIcon 
35.
    Get 
36.
      Return m_Icon 
37.
    End Get 
38.
    Set(ByVal value As ToolTipIcon) 
39.
      m_Icon = value 
40.
    End Set 
41.
  End Property 
42.
  Public Property Duration() As Integer 
43.
    Get 
44.
      Return m_Duration 
45.
    End Get 
46.
    Set(ByVal value As Integer) 
47.
      m_Duration = value 
48.
    End Set 
49.
  End Property 
50.
  Public Property IsBaloon() As Boolean 
51.
    Get 
52.
      Return m_IsBaloon 
53.
    End Get 
54.
    Set(ByVal value As Boolean) 
55.
      m_IsBaloon = value 
56.
    End Set 
57.
  End Property 
58.
End Class
Zugegeben, das anzeigen der ToolTips hätte OOP-konform in den /Item/-Klassen stattfinden müssen, allerdings für alle /ToolStripItems/-Typen Klassen abzuleiten...? Für meine Problemstellung reicht das hier soweit aus.
Bitte warten ..
Ähnliche Inhalte
Windows Server
Deaktivierter DomänenAdmin
Frage von franky201Windows Server9 Kommentare

In einer 2016 Domäne ist folgender Fall aufgetreten. Das lokale Administratorkonto sollte per GPO mittels ComputerRL/Windowseinstellungen/Sicherheitseinstellungen/lokale Richtlinien/Sicherheitsoptionen/Konten:Administratorkontostatus deaktiviert werden. ...

Debian

Unrecognized control: 1.3.6.1.4.1.4203.666.5.16

Frage von ckedingDebian

Hi, in meinem Log vom slapd erscheint ständig die folgende Meldung. slap_global_control: unrecognized control: 1.3.6.1.4.1.4203.666.5.16 Soweit ich raus bekommen ...

CPU, RAM, Mainboards

Sata Controler auf mainboard hinzufügen

gelöst Frage von ipconfigCPU, RAM, Mainboards13 Kommentare

Hallo, ich habe folgendes Mainboard: und möchte zwei weitere SATA-Anschlüße für zwei weitere interne Festplatten hinzufügen Vielen Dank für ...

Server-Hardware

Welchen RAID Controler? Welche Server Festplatten dazu?

Frage von Hocus-PocusServer-Hardware21 Kommentare

Hallo, und zwar, kurz und knapp. Ich benötige einen MS SQL Server. Die Hardware könnte diese sein : DELL ...

Neue Wissensbeiträge
Windows 10

Windows 10 1809 - Snipping Tool wird verschoben und Benutzer sollen die App installieren

Information von Deepsys vor 1 StundeWindows 104 Kommentare

Hallo zusammen, und wieder ein Punkt mehr Windows 10 zu hassen, das Snipping Tool wird bald "verschoben" und durch ...

Windows 10

Blackscreen nach dem Update von 1809 auf 1809 wenn der Rechner aus dem Standby gestartet wird

Tipp von FSX2010 vor 1 TagWindows 108 Kommentare

Habt ihr den Samsung Treiber "Samsung_NVM_Express_Driver_3.0" installiert sollte dieser für 1809 deinstalliert werden da dieser nicht kompatibel ist. Der ...

Utilities
Teamviewer 14 Verbindungsprobleme mit Proxy
Tipp von PeterleB vor 3 TagenUtilities

Nach dem Umstieg von Version 13 auf 14 wollte sich TV nicht mehr mit dem Netz verbinden, ignorierte offenbar ...

Administrator.de Feedback
Unsere Datenbank wurde umgestellt
Information von Frank vor 3 TagenAdministrator.de Feedback5 Kommentare

Hallo User, ich habe in der Nacht unsere Datenbank umgestellt. D.h. neue Version (MySQL 8) und andere Örtlichkeit. Sollte ...

Heiß diskutierte Inhalte
Windows 10
Nach Windows-Upgrade verschwinden Kacheln aus dem Startmenü
Frage von swiss-electronicsWindows 1015 Kommentare

Hallo zusammen Ich habe nun schon mehrmalig die Erfahrung gemacht, dass nach dem Upgrade von Windows 10 Build 1709 ...

Windows 10
Probleme mit Zielgruppenadressierung unter Windows 10
Frage von Mister-MWindows 1015 Kommentare

Hallo zusammen, folgendes Problem, bzw. Situation. Ich habe eine Gruppenrichtlinie mit einer Druckerzuweisung gemacht. Hier habe ich die Zielgruppenadressierung ...

Webbrowser
Proxy-Zugangsdaten in Firefox hinterlegen
gelöst Frage von SebastianGSWebbrowser14 Kommentare

Hallo zusammen, kennt jemand von Euch aktuell eine Möglichkeit die Proxy-Zugangsdaten im Firefox (Vers. 63.0.3 - 64-Bit) zu hinterlegen, ...

Windows Server
Replizierung Netlogon funktioniert nicht
Frage von miichiii9Windows Server12 Kommentare

Guten Abend Ich habe einen Domain Controller hier die Daten: SRV-DC03 Windows Server 2012 Std. Nun habe ich einen ...