Podczas tworzenia aplikacji WinForms natknąłem się na coś, co moim zdaniem jest błędem w formantach OpenFileDialog i SaveFileDialog. Wyszukiwarka Google zwróciła uwagę na jedną osobę, która zauważyła ten sam problem, ale nie podano rozwiązania ani obejścia. Możesz zobaczyć ten wątek pod adresem: http://bytes.com/topic/visual-basic-net/answers/389470-open-file-dialog-picturebox-click-event.FileDialog DoubleClick Behavior
Mam niestandardowy formant w moim formularzu, który obsługuje zdarzenie MouseDown. Jeśli dwukrotnie kliknę plik w formantu FileDialog, gdy mysz znajdzie się nad tym sterowaniem (oczywiście w oknie dialogowym między nimi), zostanie wywołane zdarzenie MouseDown. Nie sądzę, że to jest problem z moją kontrolą, ponieważ osoba, o której wspomniałem wcześniej, zauważyła, że dzieje się to z kontrolą PictureBox. Wydawać by się mogło, że mimo naciśnięcia przycisku myszy (dla drugiego kliknięcia, aby otworzyć plik), podczas gdy w oknie dialogowym zdarzenie przechodziło do formularza i moje sterowanie, kiedy okno dialogowe się zamknęło.
Próbowałem wyłączyć kontrolę, gdy okno dialogowe jest aktywne, ale to nie powstrzymało go przed przechwyceniem zdarzenia. Zakładam, że dzieje się tak dlatego, że zdarzenie jest przekazywane po zamknięciu okna, więc moja kontrola zostanie ponownie włączona. Czy ktokolwiek wie, w jaki sposób zapobiec temu, aby kliknięcie dotarło do formularza, a co za tym idzie, kontrolować? Ponadto, czy ktoś może potwierdzić, czy rzeczywiście jest to błąd w kontrolkach FileDialog, czy też mam tylko niektóre ustawienia skonfigurowane niepoprawnie?
Nazywam base.OnMouseDown (e) z mojego nadpisanego programu obsługi OnMouseDown (MouseEventArgs e). Próbowałem wywoływanie go zarówno przed (na górze) i po (na dole) mój program obsługi, ale żadna pozycja wydaje się mieć żadnego wpływu na problem. Będę musiał przyjrzeć się bliżej kolejce zdarzeń i sprawdzić, czy mogę coś tam znaleźć. –