Kontrolki użytkownika nie pojawiają się w przyborniku

Mam kilka kontrolek UserControl, które stworzyłem w ProjectA. Mam ProjectB, który ma formularz windows, na którym chcę umieścić kontrolki. Oba te projekty są w jednym rozwiązaniu. Jest odniesienie do ProjectA z ProjectB, więc może "zobaczyć" kontrolki użytkownika.

Jednak kontrolki UserControls nie pojawiają się w przyborniku, abym mógł przeciągnąć je do formularza windows.

Próbowałem odbudować. Usunąłem również katalog "bin", aby wymusić przebudowę.

Jak dostać VS2008 wypełnić toolbox z moich kontrolek UserControls?

Author: Kent Fredric, 2008-11-13

29 answers

Sprawdź to ustawienie:

Narzędzia > Opcje > Windows Forms Designer > Ogólne: AutoToolboxPopulate

Powinno być ustawione na True, aby to zadziałało.

 80
Author: Ryan Lundy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 20:12:28
  1. Zbuduj swój projekt, aby upewnić się, że jest kompilowany.

  2. W formularzu, który chcesz kontrolować, otwórz toolbox, kliknij prawym przyciskiem myszy i wybierz "wybierz elementy"

  3. Przejdź do swojego .exe lub dll, które zostały skompilowane w kroku 1.

  4. Upewnij się, że kontrola użytkownika ma zaznaczenie obok, naciśnij OK.

  5. Kontrola użytkownika powinna pojawić się w przyborniku, więc przeciągnij ją do formularza.

Jest to zaadaptowane z odpowiedź Calanusa na podobne pytanie.

 29
Author: Don Kirkby,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:32:24

W moim przypadku AutoToolboxPopulate był już ustawiony (Visual C # 2010 Express).

Jednak musiałem aktywować "Pokaż wszystko" z właściwości Toolbox (kliknij prawym przyciskiem myszy), aby zobaczyć moje nowe kontrolki użytkownika.

 18
Author: Maxime Larocque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-22 03:06:46

Do tej pory nie miałem problemu z usercontrols nie pokazuje się w toolbox. Zbuduj projekt i po prostu się pojawi. Więc dzisiaj nie działa. Po poszukiwaniach przeszedłem następujące, ale nadal nie radość.

  • Narzędzia > Opcje > Windows Forms Designer > Ogólne: AutoToolboxPopulate
  • Narzędzia > Opcje > edytor tekstu > XMAL > Misc: AutoToolboxPopulate
  • Zresetuj ustawienia VS na domyślne

Więc po kilku godzinach wygłupiania się próbuje dostać go do Praca bez powodzenia, stworzyłem nowy projekt WPF windows akceptujący domyślną nazwę i dodałem kontroler usercontrol. Zbudowałem projekt i kontrola użytkownika pojawiła się jak zawsze.

Pomyślałem wtedy, że coś może być nie tak z moim projektem lub plikiem okna wpf. Usunięto projekt, utworzono nowy i dodano nową kontrolę. Zbudowałem projekt, ale nie zadziałał.

Jedyną rzeczą, którą zrobiłem inaczej, było wybranie nazwy dla projektu, w którym umieściłem spację w nazwie " WPF Zastosowanie".

Ponownie usunął projekt i utworzył nowy o nazwie "WPFApplication" bez spacji i dodał kontrolę użytkownika. Zbudowałem go i pojawiła się kontrola użytkownika.

Jeśli chcesz, aby kontrolki usercontrols pojawiały się automatycznie w przyborniku podczas budowania, nie używaj spacji w nazwie projektu. Mam nadzieję, że ten post zaoszczędzi komuś mnóstwo zmarnowanego czasu.

 11
Author: John Petrak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-12-05 08:31:40

Innym powodem, dla którego kontrolki użytkownika mogą nie pojawiać się w przyborniku jest brak domyślnego konstruktora.

 6
Author: wlf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-03 10:36:30

Sprawdź również, czy kontrolki użytkownika mają poprawną Przestrzeń nazw.

Właśnie odkryłem, że kontrolki bez przestrzeni nazw nie są umieszczane wewnątrz skrzynki narzędziowej.

 5
Author: ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-03-23 08:44:07

Zazwyczaj trzeba zbudować rozwiązanie. Dla mnie to prawie zawsze działa.

 4
Author: Filip Frącz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-11-13 20:00:36

Miałem ten sam problem. Po wielu googlowaniu nic nie znalazłem, ale przez przypadek dowiedziałem się, że jeśli klikniesz na toolbox podczas gdy jesteś w tym samym projekcie, w którym utworzyłeś kontrolę użytkownika, i zaznacz "Pokaż wszystko", to grupa o tej samej nazwie co twój projekt pojawi się na górze toolbox, w którym możesz znaleźć kontrolę użytkownika. Teraz możesz dodać swoją kontrolę na żądanym formularzu!

 3
Author: Siyavash,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-21 09:05:07

Dla kogoś, kto może pracować z ToolStripItems (np. ToolStripStatusLabel), aby w rozwijanym menu (np. z StatusStrip), musisz ustawić klasę na public następnie zbuduj rozwiązanie.

Również nie zapomnij atrybutu designer dla twojej klasy, coś takiego:

using System.Windows.Forms.Design;

[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class MyStatusLabel : ToolStripStatusLabel
{
}
Trochę mi to zajęło. Mam nadzieję, że to oszczędzi komuś czasu.
 3
Author: Dan7,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-23 00:18:27

Moja kontrola była publiczna, została zaznaczona w oknie dialogowym "wybierz elementy skrzynki narzędziowej", ale nadal nie wyświetlała się.

To w końcu mi się udało:

Kliknij prawym przyciskiem myszy gdzieś w przyborniku i kliknij "Wybierz elementy". Kiedy znalazłem mój przedmiot był już sprawdzony. Następnie odznaczyłem przedmiot i kliknąłem ok. Następnie ponownie kliknąłem prawym przyciskiem myszy skrzynkę narzędziową i szukałem mojego przedmiotu... nie było go, więc kliknąłem Przeglądaj, nawigowałem do folderu obj / x86 / debug i wybrałem mój exe. Przedmiot był następnie poprawnie dodany do przybornika.

Myślę, że to błąd VS.

 3
Author: Chriszimort,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-10 20:36:39

Oprócz wszystkich instrukcji, które zostały podane (Narzędzia > Opcje > Windows Forms Designer > ogólne : AutoToolboxPopulate) + musisz zbudować rozwiązanie (co jest dla mnie oczywiste) prawdopodobnie będziesz musiał zwrócić uwagę na modyfikator dostępu do klasy: musi być publiczny. Właśnie stworzyłem kontrolkę i nie pojawił się na liście toolbox i nie wiedziałem, dlaczego. Więc po zestawie

public class  yourClass:control {}

Niż pojawiła się na liście. ;) Mam nadzieję, że to pomoże innym.

 3
Author: Alexa Adrian,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-02-20 07:35:24

Sprawdź katalog wyjściowy kompilacji. Jeśli z jakiegoś powodu budujesz swoje dane wyjściowe w innym miejscu niż katalog project bin\, elementy sterujące nie pojawią się w twoim zestawie narzędzi.

 2
Author: Russell,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-11-21 21:21:34

Oto mój problem: Dodałem nowy konstruktor dla mojej kontroli, który zaakceptował kilka argumentów, ale nie ponownie zadeklarowałem pustego konstruktora! Zestaw narzędzi może zawierać tylko kontrolki, które mają puste konstruktory. Ogólnie rzecz biorąc, kiedy projektujesz klasę w vb, ma ona zdefiniowany niejawnie pusty konstruktor(co oznacza, że nie musisz jej deklarować). Ale jak tylko zaczniesz projektować własne konstruktory, ten pusty konstruktor znika, więc musisz wyraźnie przedefiniuj to w swoim kodzie! Tak czy inaczej, zdaję sobie sprawę, że większość doświadczonych programistów vb już to wszystko wie, ale mam nadzieję, że pomoże to niektórym nowicjuszom, takim jak ja :).

 2
Author: BrianEsler,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-09 16:23:33

Jest możliwe, aby wszystkie powyższe nie powiodły się.

Naprawiłem to, tworząc nową kontrolę użytkownika (TestControl) i uruchomiłem Visual Studio, aby magicznie dodać kartę kontrolek + kontrolki mojego projektu z powrotem do Toolboxa. Potem usunąłem kontrolę testu.

Przydarzyło mi się to po niedawno zainstalowanej automatycznej aktualizacji Windows Update VS 2008, nawiasem mówiąc.

 1
Author: codenheim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-25 21:58:12

To, co zwykle robię, to tworzenie nowej karty i dodawanie EXE / dll do tej karty... Niezbyt wygodne z tym rozwiązaniem ze względu na czas ładowania i ogólne Problemy.

Przyjaciel pokazał mi, jak to przyspieszyć. Zamiast klikać " wybierz elementy..."w zestawie narzędzi,itp., dla każdej nowej kontrolki, którą tworzysz - możesz utworzyć plik o nazwie MyCustomControls i tam możesz utworzyć własne kontrolki.

Teraz wystarczy " wybierz elementy..."i dodaj ten plik raz. Jeśli później zdecyduj się dodać nową kontrolkę, utwórz ją w MyCustomControls, a następnie Przebuduj.
Wtedy Twoja skrzynka narzędziowa będzie miała nową kontrolę. (Będzie wyświetlany automatycznie przy regularnej kompilacji, jeśli masz AutoToolboxPopulate myślę)

Jest to niefortunne, ponieważ często chcesz rozdzielić klasy na "jedną klasę na plik". To straszne, że musisz zrujnować swoją architekturę kodu tylko dlatego, że VS nie chce robić tego po swojemu. :)

Ja też nie czuję się zbyt komfortowo z tym rozwiązaniem, ale jeśli potrzebujesz zrób coś szybko, a nie dbasz o wiele kontroli użytkownika w pliku lub po prostu jesteś leniwy, to może Ci pasować. :)

 1
Author: DavidMB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-12-01 03:14:18

Cóż, nic nie działało dla mnie oprócz tego działa...

  1. tworzę nowy projekt w moim rozwiązaniu, a dla tego projektu działa, więc zamierzałem zacząć używać tego
  2. grając arond, zacząłem poprawiać xml pliku csproj, aby dowiedzieć się, co było nie tak z moim innym projektem w tym samym rozwiązaniu, a następnie zresetowałem go, ponieważ wydawało się, że nie działa
  3. Teraz magicznie działa ponownie w moim projekcie

Niezbyt dobre rozwiązanie, ale powinieneś spróbować te kroki

  1. Sprawdź, czy działa w zupełnie nowym rozwiązaniu / projekcie.
  2. Sprawdź, czy działa w zupełnie nowym projekcie w tym samym rozwiązaniu
  3. Jeśli #2 zadziałało, może porównaj .pliki csproj...jakoś mój zaczął działać ponownie, gdy to robiłem (to jest bardzo frustrujące).
 1
Author: Dean Hiller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-08 14:13:46

Pod warunkiem, że już próbowałeś majstrować z:

  • Narzędzia > Opcje > Windows Forms Designer > Ogólne: AutoToolboxPopulate
  • Narzędzia > Opcje > edytor tekstu > XMAL > Misc: AutoToolboxPopulate
  • utworzono domyślny konstruktor
  • Zbuduj swój projekt / zresetuj toolbox i dodaj ręcznie swoją kartę

Ale nadal widzisz, że jest wyszarzony..

Sprawdź długość ścieżki i sprawdź znaki używane w Twoim absolutnym ścieżka .

Miałem projekt "C:\Users\myName\myCompany\R&D\Projects"
I po kilku godzinach okazało się, że "R & D" jest problemem..
Na '&' nie zezwalał na włączenie elementów usercontrol w moim toolbox.

 1
Author: G.Y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-06-09 19:31:23

Wpadłem w tę pułapkę kilka godzin temu.
Mam projekt aplikacji. NET 2.0 Windows z kilkoma niestandardowymi kontrolami UserControls; działało dobrze. Postanowiłem więc zamówić moje pliki w podfolderach, aby mój projekt był trochę czystszy.
Następnie Visual Studio 2010 designer przestał ładować moje formularze, a ToolBox nie będzie już pokazywał moich formantów.
Spanikowałem, przenosząc pliki źródłowe do katalogu głównego projektu, resetując ToolBox, ale nic nie działało. Potem przypomniałem sobie, że używany ReSharper "Usuń nieużywane odniesienia", więc próbowałem Umieścić z powrotem nieużywane odniesienia, w szczególności System.Data : problem rozwiązany! : O Nie mogę powiedzieć dlaczego, ale to zadziałało na mnie.
Mam nadzieję, że moje doświadczenie pomoże komuś innemu. :)
Pa, Nando

 1
Author: Ferdinando Santacroce,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-03 14:56:13

Jeśli nadal nie możesz znaleźć, Dlaczego Twój zestaw narzędzi vstudio nie jest wypełniony kontrolkami użytkownika. Następnie możesz debugować vstudio za pomocą innego visual studio. Tutaj znajdziesz sposób.

 1
Author: stivoberlin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-22 07:56:33

Jeśli próbowałeś podążać za wszystkimi innymi odpowiedziami i nadal nie działa, następujące naprawiło to dla mnie:

  • Kliknij prawym przyciskiem myszy projekt zawierający twoją kontrolę.
  • Wybierz Properties.
  • w kategorii Ustawienia Build Upewnij się, że Register for COM interop jest zaznaczone.
 1
Author: Forest Kunecke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-08-09 17:09:52

W moim przypadku przyczyną błędu była nadmierna długość ścieżki do mojej kontroli .dll. Zmniejszyłem go trochę i wszystko zaczęło działać dobrze.

Dowiedziałem się również, że symbole specjalne (np. użyłem #) w ścieżce wpływają na wyświetlacz sterujący.

Mam nadzieję, że to rozwiąże problem.

 1
Author: Alex Urazaev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-10-22 09:57:16

W UserControl upewnij się, że nowa jest zadeklarowana Public. Nie pojawi się, jeśli jest po prostu zadeklarowana jako nowa (domyślnie znajomy).

 0
Author: smirkingman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-27 08:35:36

Objaw 1: widoki projektu dla Form, UserControl, & Component zawodziły!

  • Mój widok projektu formularza nie powiódł się w / msg "nie można znaleźć 'Kontrola użytkownika'."
  • jeśli udało mi się uruchomić Widok projektu formularza, był bardzo niestabilny i zepsuł wszystko do piekła bez żadnych zmian.

Objaw 2: UserControl & komponent w Toolbox

  • były wyszarzone w skrzynce narzędzi i pokazywały zniekształconą nazwę
  • "Wybierz element" w kontekście przybornika menu pokazało zniekształconą nazwę i brak przestrzeni nazw

Rozwiązanie: Ustaw zakres na Public w vb za UserControl, & Component

 0
Author: Buddha Bear,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-01 16:57:57

Sprawdź ścieżkę projektu, unikaj & , # itd.

Przeniosłem moje rozwiązanie z drive:\work\c#\folder\ Na drive:\work\folder i to rozwiązało problem.

 0
Author: user3611840,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-07 11:28:41

Próbowałem zbudować aplikację tylko na x64, więc mój cel platformy został ustawiony na x64 oczywiście.

Jednak nawet w 2016 roku Visual Studio (devenv.exe) nadal jest 32-bitowym procesem i nie może załadować 64-bitowych zestawów. Aby sprawdzić bitność programu Visual Studio, otwórz Menedżera zadań i sprawdź *32 w nazwie procesu.

Obejście, aby zobaczyć elementy sterujące w zestawie narzędzi: Ustaw docelową platformę na Any CPU w ustawieniach projektu. Zrób to dla Debug i Release build, jeśli konieczne.

 0
Author: Thomas Weller,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 19:16:26

Kiedy próbowałem dodać mój UserControl do toolbox (kliknij prawym przyciskiem myszy toolbox, wybierz elementy, wybierz Mój DLL) wyświetla komunikat mówiący, że nie ma kontroli w moim DLL.

W każdym razie problem został rozwiązany, próbując utworzyć formularz w moim DLL W VS i dodając UserControl. Wyświetlany komunikat o błędzie mówiący, że nie ma domyślnego konstruktora

public UserControl() {
...
}

Projektant tego potrzebuje, ponieważ nie może wiedzieć, jakie są poprawne argumenty. Kiedy dodałem pusty konstruktor do UserControl został dodany do toolbox bez problemu.

 0
Author: Martin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-14 19:21:38

Jak wspomniano tutaj powinieneś powiedzieć visual studio, aby załadował twoją kontrolę usercontrol w toolbox.

[ToolboxItem(true)]
public class PanelTitle : LabelControl  {
// Whatever code to override LabelControl here...
}
 0
Author: hamed,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:17:42

Zanim spróbujesz dodać niestandardową kontrolę, upewnij się, że jest ona zgodna z wersją.Net twojego bieżącego projektu.

Próbowałem dodać niestandardową kontrolę do toolbox dla projektu Dla Windows CE 5.0 i. Net Compact v3. 5 na VS2008. Zrobiłem wszystkie poprzednie sugestie, ale nic nie działało. Kontrolka pojawia się, gdy zaznaczone jest "pokaż wszystko", ale jest szara, nawet w menu" wybierz elementy " jest zaznaczone.

Stworzyłem nowy projekt z. Net v2. 0 i działał idealnie.

 0
Author: Aouffen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-01-26 18:52:22

Witam jego odpowiedź Ctrl + Alt + X weź to i później masz TOOLBOX :)

 -1
Author: MéhmétCãn Kãrã,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-12 10:03:10