/ / Półprzezroczysty formularz, który pomija (lub wysyła do tła) dane wejściowe myszy? - c #, .net, winforms, .net-4.0

Półprzezroczysta forma, która pomija (lub wysyła do tła) wejście myszy? - c #, .net, winforms, .net-4.0

Jak mogę utworzyć formularz, który cokolwiek zrobię zna myszy, będzie tak, jakby nie było tam formularza i cokolwiek jest za (co będzie częścią mojej aplikacji) otrzyma wszystkie dane z myszy. To, co chcę zrobić, to w zasadzie samouczek, który podkreśla elementy sterujące, które użytkownik musi kliknąć. Wiem, jak generować kliknięcia, ale chciałbym rozszerzyć funkcjonalność na każde możliwe wejście myszy. Próbowałem sobie poradzić WndProc w mojej formie i wysłać wiadomość do wszystkiego, co jest za nią, ale to był bałagan. Czy jest na to lepszy sposób?

Inną możliwością jest zachowanie formyprzezroczyste i pomaluj dowolną kontrolkę, która powinna otrzymać dane od myszy, ale chcę tylko wiedzieć, czy wyróżnienie (malowanie kontrolki półprzezroczystym pędzlem) jest możliwe.

Odpowiedzi:

0 dla odpowiedzi № 1

Utwórz okno samouczka (półprzezroczyste) za pomocąkonstruktor przyjmuje parametr okna nadrzędnego. W oknie zdarzenia MouseDown / MouseUp wywołaj moduł obsługi zdarzeń myszy w dół / myszy w górę rodzica.

publiczna klasa częściowa ParentWindow: Window { public ParentWindow () { InitializeComponent (); }

private void testButton_Click(object sender, RoutedEventArgs e)
{
TutorialWindow tutorialWindow = new TutorialWindow(this);
tutorialWindow.Show();
}

public void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
// Do something
}

}

I klasa TutorialWindow

publiczna klasa częściowa TutorialWindow: Window { prywatny rodzic ParentWindow;

public TutorialWindow(ParentWindow parent)
{
InitializeComponent();
this.parent = parent;
}

private void Window_MouseDown(object sender, MouseButtonEventArgs e)
{
this.parent.Window_MouseDown(sender, e);
}

}

Właściwości okna samouczka można zmodyfikować, aby uczynić je półprzezroczystym, a nawet „znikać”, gdy użytkownik kliknie okno.