Problém s "Handles CB1PP.SelectedIndexChanged"   zodpovězená otázka

VB.NET, Komponenty, WinForms

Dobrý den,

chtěl bych se zeptat co znamená tyto chyba:"Handles clause requires a WithEvents variable defined in the containing type or one of its base types."

Objevuje se v této proceduře (podtržené modrou vlnovkou je CB1PP):

Private Sub CB1P_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB1PP.SelectedIndexChanged

    End Sub

CB1PP je combobox, který je vytvořen po kliknutí na radiobutton takto: (vynechal jsem z kódu části, které se problému netýkají)

 PanelPrich.Location = New Point(13, 121)
 PanelPrich.Size = New Size(550, 239)
 Me.SplitContainer2.Panel1.Controls.Add(PanelPrich)

 Dim CB1PP As New ComboBox
 CB1PP.Location = CB1.Location

'ADD ALL
        With PanelPrich.Controls
            .Add(Lbl6P)
            .Add(Lbl7P)
            .Add(CB1PP)
            .Add(Lbl8P)
            .Add(ChB1P)
            .Add(CB2P)
        End With

        'Položky CB1PP
        With CB1PP.Items
            .Clear()
            .Add("HL P1") '0
            .Add("HL P2") '1
            .Add("HL P60") '2
            .Add("Ba-KSA") '3
            .Add("OZ") '4
        End With

Děkuji za případné odpovědi

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Znamená to, že pokud mají být handlery událostí nastaveny deklarativně (pomocí Handles), musí být příslušná proměnná (CB1PP) deklarována s WithEvents.

nahlásit spamnahlásit spam 2 / 2 odpovědětodpovědět

CB1PP musí být proměnná v rámci třídy. Nemužete ji tedy deklarovat v nějaké inicializační proceduře jako: dim CB1PP ...... .

(Pokud to je procedura, ale vzhledem k učovaní location na dalším řádku tak asi je).

Mělo by to být nějak takhle:

Private withevents CB1PP as combobox

a v proceduře pak:

me.CB1PP = new combobox

.vlastnosti ....

.přidání do nějaké kolekce.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Super - funguje!!

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dejte si akorát pozor, abyste na té proměnné něco nezavolal před tím, než do ní instanci ComboBoxu přidáte.

Není lepší mít ComboBox na formuláři od začátku a jen ho nechat schovaný?

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback