Řešení potíží s vytvářením ovládacích prvků a komponent

Toto téma uvádí následující běžné problémy, ke kterým dochází při vývoji komponent a ovládacích prvků:

  • Do panelu nástrojů nelze přidat ovládací prvek

  • Nelze ladit model Windows Forms uživatelském ovládacím prvku nebo komponentě

  • Událost je vyvolána dvakrát v zděděném ovládacím prvku nebo komponentě.

  • Chyba v době návrhu: Nepodařilo se vytvořit komponentu Název komponenty

  • Stathreadattribute

  • Ikona komponenty se nezobrazuje v sadě nástrojů

Do panelu nástrojů nelze přidat ovládací prvek

Pokud chcete do panelu nástrojů přidat vlastní ovládací prvek, který jste vytvořili v jiném projektu nebo ovládacím prvku třetí strany, musíte to provést ručně. Pokud aktuální projekt obsahuje ovládací prvek nebo součást, měl by se automaticky zobrazit v sadě nástrojů . Další informace naleznete v tématu Návod: Automatické naplnění sady nástrojů vlastními komponentami.

Přidání ovládacího prvku do panelu nástrojů

  1. Klikněte pravým tlačítkem myši na panel nástrojů a v místní nabídce vyberte Vybrat položky.

  2. V dialogovém okně Zvolit položky sady nástrojů přidejte komponentu:

    • Pokud chcete přidat komponentu nebo ovládací prvek rozhraní .NET Framework, klikněte na kartu Komponenty rozhraní .NET Framework.

      –Nebo–

    • Chcete-li přidat komponentu COM nebo technologie ActiveX ovládací prvek, klikněte na kartu Součásti modelu COM.

  3. Pokud je ovládací prvek uvedený v dialogovém okně, potvrďte, že je vybraný, a klepněte na tlačítko OK.

    Ovládací prvek se přidá do panelu nástrojů.

  4. Pokud ovládací prvek není v dialogovém okně uvedený, postupujte takto:

    1. Klikněte na tlačítko Procházet .

    2. Přejděte do složky, která obsahuje soubor .dll, který obsahuje váš ovládací prvek.

    3. Vyberte soubor .dll a klepněte na tlačítko Otevřít.

      Ovládací prvek se zobrazí v dialogovém okně.

    4. Potvrďte, že je vybraný ovládací prvek, a klepněte na tlačítko OK.

      Ovládací prvek se přidá do panelu nástrojů.

Nelze ladit model Windows Forms uživatelském ovládacím prvku nebo komponentě

Pokud je váš ovládací prvek odvozený z UserControl třídy, můžete ladit jeho chování za běhu pomocí testovacího kontejneru. Další informace naleznete v tématu Postupy: Otestování chování běhu userControl.

Jiné vlastní ovládací prvky a komponenty nejsou samostatné projekty. Musí být hostované aplikací, jako je například projekt model Windows Forms. Pokud chcete ladit ovládací prvek nebo komponentu, musíte ho přidat do model Windows Forms projektu.

Ladění ovládacího prvku nebo komponenty

  1. V nabídce Sestavení klikněte na Sestavit řešení a sestavte své řešení.

  2. V nabídce Soubor zvolte Přidat a potom Nový projekt a přidejte do aplikace testovací projekt.

  3. V dialogovém okně Přidat nový projekt zvolte aplikaci systému Windows pro typ projektu.

  4. V Průzkumník řešení klikněte pravým tlačítkem myši na uzel Reference pro nový projekt. V místní nabídce klepněte na tlačítko Přidat odkaz přidat odkaz na projekt obsahující ovládací prvek nebo součást.

  5. Vytvořte instanci ovládacího prvku nebo komponenty v testovacím projektu. Pokud je vaše komponenta v sadě nástrojů, můžete ji přetáhnout na plochu návrháře nebo můžete instanci vytvořit programově, jak je znázorněno v následujícím příkladu kódu.

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

    Ovládací prvek nebo komponentu teď můžete ladit obvyklým způsobem.

Další informace o ladění naleznete v tématu Ladění v sadě Visual Studio a Návod: Ladění vlastních ovládacích prvků model Windows Forms v době návrhu.

Událost je vyvolána dvakrát v zděděném ovládacím prvku nebo komponentě.

Důvodem je pravděpodobně duplicitní Handles klauzule. Další informace naleznete v tématu Řešení potíží s zděděnými obslužnými rutinami událostí v jazyce Visual Basic.

Chyba v době návrhu: Nepodařilo se vytvořit komponentu Název komponenty

Součást nebo ovládací prvek musí poskytovat konstruktor bez parametrů bez parametrů. Když návrhové prostředí vytvoří instanci komponenty nebo ovládacího prvku, nepokoušá se poskytnout žádné parametry pro konstruktor přetížení, které přebírají parametry.

Stathreadattribute

Informuje STAThreadAttribute modul CLR (Common Language Runtime), že model Windows Forms používá model apartmánu s jedním vláknem. Pokud tento atribut nepoužijete na metodu aplikace model Windows FormsMain, můžete si všimnout nezamýšleného chování. Například obrázky na pozadí nemusí být zobrazeny pro ovládací prvky, jako je ListView. Některé ovládací prvky mohou také vyžadovat tento atribut pro správné chování automatického dokončování a přetažení myší.

Ikona komponenty se nezobrazuje v sadě nástrojů

Pokud použijete ToolboxBitmapAttribute k přidružení ikony k vlastní komponentě, rastrový obrázek se nezobrazí v sadě nástrojů pro automaticky generované součásti. Pokud chcete zobrazit rastrový obrázek, znovu načtěte ovládací prvek pomocí dialogového okna Zvolit položky panelu nástrojů. Další informace naleznete v tématu Postupy: Poskytnutí rastrového obrázku panelu nástrojů pro ovládací prvek.

Viz také