To świetnie, gdy przyciski radiowe tej samej grupy mogą być w rzędach lub kolumnach, ale co zrobić, jeśli przyciski radiowe muszą być wyświetlane w stylu X (lub w bardziej złożony sposób):
A B
C D
Ograniczenia dla tej próbki X styl kładę:
- a ma związek z D (a i D nie mogą być sprawdzane w tym samym czasie, sprawdzanie jeden usuwa zaznaczenie pola wyboru inne)
- C ma związek z B (C i B nie mogą być sprawdzane w tym samym czasie, sprawdzając jeden usuwa zaznaczenie pola wyboru innego)
Jest wizualnie wymagane jako że w stylu X, więc nie można umieszczać żadnych groupbox który przechowuje że RadioButton, ponieważ groupbox są prostokątne, a nie po przekątnej.
Nie znam żadnych poprawek tylko przy użyciu standardowych komponentów, między innymi z hackami, które sprawiają, że panele są przezroczyste, a także mogą być klikalne, dzięki czemu oba panele są kwadratowe, jedno nad drugim.
Ale co z tym, że przyciski radiowe znajdują się bardzo daleko od siebie, z wieloma skomplikowanymi komponentami, panelami przepływu, notatkami itp.?
Jedyną opcją jest użycie komponentów firm trzecich (w końcu do tego, co wiem) lub zrobić dużo ciężkiej pracy:
- Utwórz panel dla każdego RadioButton z dokładnie tej samej wielkości i pozycji jako RadioButton; to sprawia, że przycisk radiowy nie odznacza żadnego innego, więc potrzeba więcej kodu.
- Dodaj kod dla każdego RadioButton, więc po jego zaznaczeniu usuń zaznaczenie wszystkich tych, które są z nim powiązane (te, które nie mogą być zaznaczone w tym samym czasie).
Zbyt dużo pracy dla czegoś, co mogłoby zostać zaimplementowane na prostej własności, takiej jak RadioGroupIndex, jeśli przypisano wartość 0, to działa teraz, teraz usuń zaznaczenie tylko tych dla tej samej grupy ... jak na główne menu.
Uzgodnione. Grupowanie radiobutonów opiera się na relacjach rodzic/dziecko. Aby mieć wiele grup przycisków, musisz użyć wielu elementów sterujących nadrzędnych. –