Udostępnij za pośrednictwem


Rozwiązywanie problemów z tworzeniem kontrolek i składników

W tym temacie wymieniono następujące typowe problemy występujące podczas opracowywania składników i kontrolek:

  • Nie można dodać kontrolki do przybornika

  • Nie można debugować kontrolki użytkownika lub składnika formularzy systemu Windows

  • Zdarzenie jest wywoływane dwukrotnie w dziedziczonej kontrolce lub składniku

  • Błąd czasu projektowania: "Nie można utworzyć składnika "Nazwa składnika"

  • Stathreadattribute

  • Ikona składnika nie jest wyświetlana w przyborniku

Nie można dodać kontrolki do przybornika

Jeśli chcesz dodać kontrolkę niestandardową utworzoną w innym projekcie lub kontrolce innej firmy do przybornika, należy to zrobić ręcznie. Jeśli bieżący projekt zawiera kontrolkę lub składnik, powinien zostać automatycznie wyświetlony w przyborniku. Aby uzyskać więcej informacji, zobacz Przewodnik: automatyczne wypełnianie przybornika za pomocą składników niestandardowych.

Aby dodać kontrolkę do przybornika

  1. Kliknij prawym przyciskiem myszy przybornik , a następnie z menu skrótów wybierz pozycję Wybierz elementy.

  2. W oknie dialogowym Wybieranie elementów przybornika dodaj składnik:

    • Jeśli chcesz dodać składnik lub kontrolkę .NET Framework, kliknij kartę Składniki programu .NET Framework.

      –Lub–

    • Jeśli chcesz dodać składnik COM lub kontrolkę ActiveX, kliknij kartę Składniki COM.

  3. Jeśli kontrolka znajduje się na liście w oknie dialogowym, upewnij się, że została wybrana, a następnie kliknij przycisk OK.

    Kontrolka jest dodawana do przybornika.

  4. Jeśli kontrolka nie znajduje się na liście w oknie dialogowym, wykonaj następujące czynności:

    1. Kliknij przycisk Przeglądaj.

    2. Przejdź do folderu zawierającego plik dll zawierający kontrolkę.

    3. Wybierz plik dll, a następnie kliknij przycisk Otwórz.

      Kontrolka zostanie wyświetlona w oknie dialogowym.

    4. Upewnij się, że kontrolka jest zaznaczona, a następnie kliknij przycisk OK.

      Kontrolka zostanie dodana do przybornika.

Nie można debugować kontrolki użytkownika lub składnika formularzy systemu Windows

Jeśli kontrolka pochodzi z UserControl klasy, możesz debugować jej zachowanie w czasie wykonywania za pomocą kontenera testowego. Aby uzyskać więcej informacji, zobacz How to: Test the Run-Time Behavior of a UserControl (Instrukcje: testowanie zachowania w czasie wykonywania elementu UserControl).

Inne niestandardowe kontrolki i składniki nie są projektami autonomicznymi. Muszą być hostowane przez aplikację, taką jak projekt Windows Forms. Aby debugować kontrolkę lub składnik, należy dodać ją do projektu Windows Forms.

Aby debugować kontrolkę lub składnik

  1. W menu Kompilacja kliknij pozycję Kompiluj rozwiązanie, aby skompilować rozwiązanie.

  2. W menu Plik wybierz pozycję Dodaj, a następnie pozycję Nowy projekt, aby dodać projekt testowy do aplikacji.

  3. W oknie dialogowym Dodawanie nowego projektu wybierz pozycję Aplikacja systemu Windows dla typu projektu.

  4. W Eksplorator rozwiązań kliknij prawym przyciskiem myszy węzeł Odwołania dla nowego projektu. W menu skrótów kliknij pozycję Dodaj odwołanie , aby dodać odwołanie do projektu zawierającego kontrolkę lub składnik.

  5. Utwórz wystąpienie kontrolki lub składnika w projekcie testowym. Jeśli składnik znajduje się w przyborniku, możesz przeciągnąć go na powierzchnię projektanta lub programowo utworzyć wystąpienie, jak pokazano w poniższym przykładzie kodu.

    Dim Component1 As New MyNeatComponent()
    
    MyNeatComponent Component1 = new MyNeatComponent();
    

    Teraz możesz debugować kontrolkę lub składnik w zwykły sposób.

Aby uzyskać więcej informacji na temat debugowania, zobacz Debugowanie w programie Visual Studio i Przewodnik: debugowanie niestandardowych kontrolek formularzy systemu Windows w czasie projektowania.

Zdarzenie jest wywoływane dwukrotnie w dziedziczonej kontrolce lub składniku

Prawdopodobnie jest to spowodowane zduplikowaną Handles klauzulą. Aby uzyskać więcej informacji, zobacz Rozwiązywanie problemów z dziedziczymi procedurami obsługi zdarzeń w Visual Basic.

Błąd czasu projektowania: "Nie można utworzyć składnika "Nazwa składnika"

Składnik lub kontrolka musi dostarczyć konstruktora bez parametrów bez parametrów. Gdy środowisko projektowe tworzy wystąpienie składnika lub kontrolki, nie próbuje podać żadnych parametrów do przeciążeń konstruktora, które przyjmują parametry.

Stathreadattribute

Program STAThreadAttribute informuje środowisko uruchomieniowe języka wspólnego (CLR), że formularze systemu Windows używają modelu apartamentów jednowątkowego. Jeśli nie zastosujesz tego atrybutu do metody aplikacji Main Windows Forms, możesz zauważyć niezamierzone zachowanie. Na przykład obrazy tła mogą nie być wyświetlane dla kontrolek, takich jak ListView. Niektóre kontrolki mogą również wymagać tego atrybutu w celu poprawnego zachowania autouzupełniania i przeciągania i upuszczania.

Ikona składnika nie jest wyświetlana w przyborniku

W przypadku skojarzenia ToolboxBitmapAttribute ikony z składnikiem niestandardowym mapa bitowa nie jest wyświetlana w przyborniku dla automatycznie wygenerowanych składników. Aby wyświetlić mapę bitową, załaduj ponownie kontrolkę przy użyciu okna dialogowego Wybieranie elementów przybornika. Aby uzyskać więcej informacji, zobacz How to: Provide a Toolbox Bitmap for a Control (Instrukcje: udostępnianie mapy bitowej przybornika dla kontrolki).

Zobacz też