Tworzę zawsze toasty na wierzchu jako formularze, a kiedy je otworzę, chciałbym, aby nie zabierały uwagi innym formom, gdy się otwierają. Jak mogę to zrobić?Otwieranie formularza w języku C# bez ogniskowania
Dzięki
Tworzę zawsze toasty na wierzchu jako formularze, a kiedy je otworzę, chciałbym, aby nie zabierały uwagi innym formom, gdy się otwierają. Jak mogę to zrobić?Otwieranie formularza w języku C# bez ogniskowania
Dzięki
protected override bool ShowWithoutActivation
{
get
{
return true;
}
}
zastąpić tę właściwość w kodzie formularza i powinna rade dla Ciebie.
Należy zauważyć, że to NIE będzie działać, jeśli twój formularz ma właściwość TopMost ustawioną na true, aby użyć tego przesłonięcia z najwyższą formą, musisz nadpisać CreateParams i ustawić WS_EX_TOPMOST również na ExStyle. –
Zajęło mi to kilka minut, używając informacji Aarona z Adama powyżej, ale w końcu udało mi się to dla mnie zadziałać. Jedyne, co musiałem zrobić, to upewnić się, że właściwość Top Most w formularzu jest ustawiona na false. Oto kod użyłem ...
protected override bool ShowWithoutActivation { get { return true; } }
protected override CreateParams CreateParams
{
get
{
//make sure Top Most property on form is set to false
//otherwise this doesn't work
int WS_EX_TOPMOST = 0x00000008;
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TOPMOST;
return cp;
}
}
Możliwy duplikat [Pokaż formularz bez kradzież ostrość?] (Http://stackoverflow.com/questions/156046/show-a-form-without-stealing- focus) – Breeze