Copyright Codenstuff.com 2017
YOU NEED TO BE LOGGED IN TO USE THIS FEATURE


Register
Credits
0
Reputation
0
How to get the 3 last controls in a panel?
Do you need something made? then ask in here.
Forum rules
Please LOCK your topics once you have found the solution to your question so we know you no longer require help with your query.


Hello,

can anyone provide me an sample to get the last 3 controls in a panel please
i want to get from the last 3 controls the 'Text' that's inside the control

Thanks
Iterating through a panels controls starts from the last one anyway
Example:

Code: Select all
For Each control In Panel1.Controls
            'Do something here
        Next


Or quick and dirty to get the last 3 controls in the panel, in this case the text from textboxes:

Code: Select all
For i = 0 To 2
            MsgBox(CType(Panel1.Controls(i), TextBox).Text)
        Next
Welcome to CodenStuff.com Learn Code, Love Code. Thank you for being a member of the community.
Hi Again,

How to get instead of an textbox just a string?
how do i get that please of the control

Code: Select all
Public Property Description() As String
        Get
            Return _PText
        End Get
        Set(ByVal Value As String)
            _PText = Value
            Invalidate()
        End Set
    End Property
I imagine it would be basically the same sort of thing.

Like
ctype(panel1.controls(I), textbox).Description()
Welcome to CodenStuff.com Learn Code, Love Code. Thank you for being a member of the community.
Hello,

NVM got it
i just needed to replace it with my own control hahaha
stupid me :D

hmmm weird, nothing shows up :(
i get only a sort of error message that shows me the line number but no error?
OKay found it

but still don't get the last 3 controls :(
it shows 1 last control if i use exit sub
then it stops

if i delete the exit sub then it shows 3 times the first control instead of the 3 last ones

Code: Select all
For i = 0 To 2
                Select Case i
                    Case 0
                        For Each ctl As Control In ITransactionControl1.IPanel1.Controls
                            If TypeOf ctl Is ITransaction Then
                                Label31.Text = CType(ctl, ITransaction).Description
                                ' Exit Sub
                            End If
                        Next

                    Case 1
                        '             MsgBox(CType(ITransactionControl1.IPanel1.Controls(2), ITransaction).Description)
                        For Each ctl As Control In ITransactionControl1.IPanel1.Controls
                            If TypeOf ctl Is ITransaction Then
                                Label4.Text = CType(ctl, ITransaction).Description
                                '  Exit Sub
                            End If
                        Next

                    Case 2
                        For Each ctl As Control In ITransactionControl1.IPanel1.Controls
                            If TypeOf ctl Is ITransaction Then
                                Label27.Text = CType(ctl, ITransaction).Description
                                '  Exit Sub
                            End If
                        Next

                End Select
            Next

:duh;
think i found the solution

Code: Select all
                            For I As Integer = 0 To ITransactionControl1.IPanel1.Controls.Count - 1
                                If TypeOf ITransactionControl1.IPanel1.Controls.Item(I) Is ITransaction Then

                                    Select Case I
                                        Case 1
                                            Label31.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                                        Case 2
                                            Label4.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                                        Case 3
                                            Label27.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                                    End Select
                                End If
                            Next



not sure yet, but testing :)

EDIT:
pfff don't get it working, still don't get the last 3 controls
seems the case functions don't work the way we count it
hope someone can give me a better solution :D

Thanks
Which controls is it getting?

Instead of CASE 1/2/3 have you tried CASE 0/1/2 ...remember it starts from 0
Welcome to CodenStuff.com Learn Code, Love Code. Thank you for being a member of the community.
hi again,

this is the result with the code

Code: Select all
For I As Integer = 0 To ITransactionControl1.IPanel1.Controls.Count - 1
                        If TypeOf ITransactionControl1.IPanel1.Controls.Item(I) Is ITransaction Then

                            Select Case I
                                Case 0
                                    Label31.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                                Case 1
                                    Label4.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                                Case 2
                                    Label27.Text = CType(ITransactionControl1.IPanel1.Controls.Item(I), ITransaction).Description
                            End Select
                        End If
                    Next


Image

what are we doing wrong :( why do i get only 1 record in the left column?

Edit:
I also needed the last 3 records that has been added as last
963,lol,pol
not from the last 3 bottoms



Online now

Users viewing this forum: No registered users and 1 browsing

cron