Są to trzy różne rzeczy, które możesz dodać do projektu i nie jestem do końca pewien, czy rozumiem różnicę. Wydaje się, że wszystkie pojawiają się na przykład w przyborniku komponentów podczas pracy z plikiem Form
. Jakie są typowe scenariusze użycia dla każdego z nich? Jaka jest różnica?
c#
winforms
controls
components
Svish
źródło
źródło
UserControl
to naprawdę kontrolka „złożona” (kontrolka utworzona z innych kontrolek), podczas gdy kontrolka niestandardowa jest w rzeczywistości kontrolką zaprojektowaną przez użytkownika.UserControl
?Dodając do tego, co powiedział Fredrik, ogólnie komponenty i niestandardowe kontrolki byłyby używane, gdy planujesz ich ponowne użycie w różnych projektach. Używaj kontrolek użytkownika, gdy chcesz ich używać tylko w jednym projekcie.
źródło
Uważam, że ostatnie stwierdzenie nie jest moim zdaniem poprawne. Tworzę kontrolki użytkownika z wielu różnych powodów.
Głównym powodem jest to, że jeśli na przykład zaprojektuję interfejs wielu elementów sterujących zgrupowanych razem.
Najpierw tworzę bibliotekę klas, a następnie dodaję do niej kontrolki użytkownika. Teraz, jeśli muszę zmienić jakąkolwiek część logiki związanej z działaniem kontroli użytkownika, mogę bardzo łatwo. Również ta biblioteka klas może być używana wielokrotnie.
Również w tej samej klasycznej bibliotece mogę mieć wiele klas, które mogą być współużytkowane i używane dla dowolnej kontrolki użytkownika.
To jest główny powód, dla którego używam kontroli użytkownika. A jeśli wprowadzisz zmianę w kontrolce użytkownika lub bibliotece klas. po zbudowaniu pracy. dll będzie dynamicznie aktualizowana w folderze bin.
Więc jeśli odwołuję się do tego w innym projekcie Te zmiany pojawią się również w nowym projekcie.
Ponadto nie używa tych samych procedur malowania, co formularz i wszystko, co załadowałeś do formularza.
Tak więc kontrolki użytkownika dają nam możliwość bycia bardzo modułowymi. I mogę mieć wielu kontrolek użytkownika, które współużytkują podstawowe klasy biblioteki klas ... Tak więc kontrola użytkownika nie jest przeznaczona dla jednego projektu. Nie ma w tym zakresie żadnych ograniczeń. jeff
źródło
Główna różnica między nimi - Kontrola użytkownika to plik strony z rozszerzeniem .ascx, który może być używany tylko w ramach jednej aplikacji lub projektu. Ale kontrolki niestandardowe to zestawy (pliki dll), które mogą być używane w wielu aplikacjach.
źródło