Zum Inhalt springen

VB.Net Tablelayout, LayoutEngine


Lsteinme

Empfohlene Beiträge

Hallo, mal wieder ne Frage^^

Ich hab aktuell das problem, das mir der folgende Code:

Dim ctrl As Control = DirectCast(sender, Control)

            Dim tlp As TableLayoutPanel = CType(ctrl.Parent, TableLayoutPanel)

            Dim row As Integer = tlp.GetPositionFromControl(ctrl).Row

eines Eventlisteners ziemlich seltsame ergebnise produziert. der genannte Listener ist für 2 selbstgeschriebene Button/Combobox Componenten listener. Diese Componeten werden im per Code unten, mehrfach mit unterschiedlichen inizialiserungen einem Tablelayout hinzugefügt.
Function init3Controls(inactiv As Boolean, pma As Projekt_Mitarbeiter, Optional hassubs As Boolean = False, Optional OPXMitarbeiter As Boolean = False) As Control()

            Dim retarray(2) As Control

            Dim cbxRole As New System.Windows.Forms.CheckBox

            Dim cboRoleType As New TeamComboBox(Me)

            Dim btEmployee As New EmployeeButton(pma.Mitarbeiter.ID)



            With cbxRole

                If (inactiv) Then

                    .Checked = False

                End If

                .AutoSize = True

                .Anchor = System.Windows.Forms.AnchorStyles.None

                .Name = pma.ID.ToString

                .TabIndex = 0

                .Text = ""

                AddHandler .CheckedChanged, AddressOf cbxCheckedChangedEvent

                AddHandler .KeyDown, AddressOf KeyDownEvent


            End With


            With cboRoleType

                'If (inactiv) Then

                '    .disableSelection = True

                'End If

                If (hassubs Or inactiv) Then

                    .Enabled = False

                End If

                .Anchor = System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right

                .FormattingEnabled = True

                .Name = pma.ID.ToString

                .AutoCompleteMode = AutoCompleteMode.Suggest

                .AutoCompleteSource = AutoCompleteSource.ListItems

                .DropDownStyle = ComboBoxStyle.DropDownList


                .Items.Add(pma.Rollen_Typ)

                .SelectedIndex = 0

                AddHandler .SelectedIndexChanged, AddressOf ValueChangedEvent

                AddHandler .KeyDown, AddressOf KeyDownEvent

            End With


            With btEmployee

                Dim fo As System.Drawing.Font = .Font


                .Anchor = System.Windows.Forms.AnchorStyles.Left Or System.Windows.Forms.AnchorStyles.Right

                .Name = pma.ID.ToString

                If (hassubs Or inactiv) Then

                    .Enabled = False

                End If

                If Not (inactiv) Then

                    AddHandler .EmployeeChanged, AddressOf ValueChangedEvent

                    AddHandler .KeyDown, AddressOf KeyDownEvent

                    AddHandler .Click, AddressOf BTEmployeeClick

                End If

            End With

            retarray(0) = cbxRole

            retarray(1) = cboRoleType

            retarray(2) = btEmployee

            Return retarray

        End Function

Nun kommt aber später, wenn man einen der Buttons klickt MANCHMAL bei getRow -1 raus. MSDN meinte dazu nur -1 käme raus wenn die LayoutEngine eine Control setzt.

Jetzt ist meine Frage, was sind die Bedingungen für die Layoutengine um eine Control zu setzen?

Denn manche Buttons funktionieren ohne probleme, hier kommt bei getrow der richtige Wert raus, und bei anderen, im gleichen Layout, über die gleiche Schleife erstellt, liefert mir getrow -1.

Hoffe mir kann da jemand die erleuchtung bringen, bin da grad etwas verwirrt, MSDN ist da auch nicht sehr hilfreich da ich hier nirgends gefunden habe WANN diese Engine eine Control setzt.

Gruß

Lucas

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...