MouseLeave na wciśniętym klawiszu myszy

0

Witam, napisałem prosty komponent na wzór tego z win8 textBox z ustawiony passwordChar posiada grafikę oka umożliwiającą podpatrzenie hasła w momencie kliknięcia na grafikę. Wciśnięcie klawisza myszy na grafice oraz jego zwolnienie działa. Problem w tym, że na wciśniętym klawiszu i opuszczeniu grafiki hasło miało się ponownie zasłonić i to już nie działa. Czy zdarzenie MouseLeave nie następuje gdy trzymamy wciśnięty przycisk myszy?

private void picSeePassword_MouseDown(object sender, MouseEventArgs e)
        {
            SetSeePassword('\0', eye_close);
            mouseDownSeePassword = true;
        }

        private void picSeePassword_MouseUp(object sender, MouseEventArgs e)
        {
            SetSeePassword('*', eye);
            mouseDownSeePassword = false;
        }

        private void picSeePassword_MouseLeave(object sender, EventArgs e)
        {
            if (mouseDownSeePassword)
            {
                SetSeePassword('*', eye);
            }
        }

        private void picSeePassword_MouseEnter(object sender, EventArgs e)
        {
            if (mouseDownSeePassword)
            {
                SetSeePassword('\0', eye_close);
            }
        }
0

Czy zdarzenie MouseLeave nie następuje gdy trzymamy wciśnięty przycisk myszy?

Pewnie nie, bo to raczej podpada pod przeciąganie czyli Drag

0

Niestety DragLeave nie działa...

0

Drag Leave działa, tylko pewnie nie tak jak się tego spodziewasz. :P Pokaż jak masz zrobione.

0

Zgadzam się na pewno działa...
Właściwie problem rozwiązany tylko nie wiem czy nie za bardzo po macoszemu...

private void picSeePassword_MouseMove(object sender, MouseEventArgs e)
        {
            if (mouseDownSeePassword)
            {
                if (e.X <= 0 || e.X >= this.pSeePassword.Width
                    || e.Y <= 0 || e.Y >= this.pSeePassword.Height)
                {
                    SetSeePassword('*', Airworthy.Properties.Resources.eye);
                }
                else if(this.tb.PasswordChar != '\0')
                {
                    SetSeePassword('\0', Airworthy.Properties.Resources.eye_close);
                }
               
            }
        }

1 użytkowników online, w tym zalogowanych: 0, gości: 1