Udostępnij za pośrednictwem


Rozwiązywanie problemów z tworzeniem kontrolek i elementó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 odziedziczonej kontrolce lub komponencie

  • błąd Design-Time: "Nie można utworzyć składnika "nazwa składnika""

  • STAThreadAttribute

  • Ikona składnika nie pojawia się na pasku narzędzi

Nie można dodać kontrolki do przybornika

Jeśli chcesz dodać kontrolkę niestandardową utworzoną w innym projekcie lub kontrolkę innej firmy do przybornika , musisz to zrobić ręcznie. Jeśli bieżący projekt zawiera Twoją kontrolkę lub składnik, powinien automatycznie pojawić się w przybornika. 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 Wybierz elementy przybornika dodaj składnik:

    • Jeśli chcesz dodać składnik lub kontrolkę programu .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 jest zaznaczona, a następnie kliknij przycisk OK.

    Kontrolka jest dodawana do przybornika .

  4. Jeśli element sterujący nie jest wymieniony 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 i kliknij Otwórz.

      Kontrolka zostanie wyświetlona w oknie dialogowym.

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

      Twoja kontrolka jest dodawana do przybornika .

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

Jeśli kontrolka pochodzi z klasy UserControl, 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.

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 Nowy projekt, aby dodać projekt testowy do aplikacji.

  3. W oknie dialogowym Dodaj nowy projekt wybierz pozycję Aplikacja systemu Windows dla typu projektu.

  4. W eksploratorze rozwiązań kliknij prawym przyciskiem myszy węzeł Odwołania dla nowego projektu. W menu skrótów kliknij 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 obszar projektowy lub utworzyć wystąpienie za pomocą kodu, 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 dziedziczonym elemencie sterującym lub komponencie

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

błąd Design-Time: "Nie można utworzyć składnika "Nazwa składnika"

Składnik lub kontrolka musi dostarczyć konstruktora 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

STAThreadAttribute informuje środowisko uruchomieniowe języka wspólnego (CLR), że windows Forms używa modelu apartamentów jednowątkowego. Jeśli nie zastosujesz tego atrybutu do metody Main aplikacji 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 działania funkcji autouzupełniania oraz przeciągania i upuszczania.

Ikona składnika nie pojawia się w narzędziowniku

Jeśli używasz ToolboxBitmapAttribute do skojarzenia ikony ze składnikiem niestandardowym, bitmapa nie jest wyświetlana w Toolboxie dla automatycznie wygenerowanych składników. Aby zobaczyć mapę bitową, ponownie załaduj kontrolkę, używając okna dialogowego Wybieranie elementów z przybornika. Aby uzyskać więcej informacji, zobacz artykuł How to: Provide a Toolbox Bitmap for a Control(Instrukcje: udostępnianie mapy bitowej przybornika dla kontrolki).

Zobacz też