Jag har lite problem med ComboBoxens OnMouseEnter och OnMouseLeave. I dessa events målar jag om controllen för att få en hoovering effekt. Hei Emil! Tack för ditt svar. Då väntar jag... Är inte Comboboxen en del av .NET framework? Utvecklingsmiljön borde väl inte påverka funktionerna av kontrollerna? Eftersom dessa är klasser som ligger ju frameworken. Eller kommer frameworken uppdateras sammtidgt med Visual Studio.NET 2003? Har för mig att jag läste någonstans att det första service-packet till Visual Studio.Net skulle komma samtidigt som 2003 versionen släpptes. Antagligen är det åtgärdat där också. Ok, jag har väntat och väntat och nu äntligen fått VS.Net 2003. Men tror ni problemet är fixat? Åh nej! Kan det inte var så att det beror på att en DropDown har en textbox mitt i kontrollen och at det är den som får OnMouseEnter och OnMouseLeave eventen. Om man då fluttar musen så snabbt att inte musen hamnar i över comboboxen kommer det ju förklara problemet. Javisst beror problemet på att textrutan inte raise:ar eventen korrekt. Jag testade för skoj skull hur den riktiga textboxen betedde sig om man drar musen snabbt ur den men där fungerade allt som det skulle, MouseLeave varje gång.Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Allt fungerar perfekt om ComboBox.DropDownStyle = DropDownList. Eventen fire:as helt korrekt.
Men, när jag ändrar till DropDown så missar eventen ibland. Speciellt när jag drar musen snabbt till själva textrutan av comboboxen eller när jag snabbt drar muspekaren ur comboboxen. Det verkar bara vara själva kanten på combon som fire:ar eventen. Om jag testar att flytta musen snabbt på dropdown knappen så fungerar eventen perfekt.
Går det på något sätt att kringå detta problem på ett bra sätt. Detta måste väl vara en bugg i alla fall.
Något kod exempel behövs inte. Testa själva genom att bara lägga in en debug.WriteLine i eventen så ser ni.Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Vi kjenner till dette problemet. Det er løst i Visual Studio.NET 2003 som kommer nå i løpet av våren.Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Sitter och sliter mitt hår. ComboBoxen innehåller inte bara EN bugg...Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Så vi tar det igen. Ställ in comboboxen för DropDownStyle = DropDown (standard) och ställ musen i textdelen, dra muspekaren snabbt ut. Nu när jag testade detta så gick jag ett steg längre och kollade vilka WM_Messages som kom till combon.
Protected Overrides Sub WndProc(ByRef m As Message)
Debug.WriteLine(m.ToString)
MyBase.WndProc(m)
End Sub
Och mycket riktigt, någon WM_MOUSELEAVE kommer aldrig om man drar musen snabbt ifrån kontrollen. Nu inser jag ju direkt att jag inte kan gå runt problemet på något sätt (jo, jag kan ju alltid bygga en egen men det är ju inte vitsen med objektorienterad programmering).
Nu är jag riktigt less på den här skiten. Är det någon som vet hur man felanmäler detta till Microsoft på ett riktigt sätt? Det är ju en bugg.
//EmilSv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Kan man ändra DropDownStyle i runtime? Du kan ju testa att sätta ComboBox.DropDownStyle = DropDownList i LostFocus och ComboBox.DropDownStyle = DropDown GotFocus.Sv: Problem med ComboBox Events OnMouseEnter - OnMouseLeave
Tack för förslaget, dessvärre fungerar det inte. MouseLeave inträffar aldrig och då kan jag inte ändra DropDownStyle (som annars fungerar att sätta i run-time).
Jag har felanmält detta till MicroSoft nu som har typat detta som en bugg. Återstår att se när detta fixas.