• Top Members
    Reps
    Posts
  • 834 Replies
    2585 Replies
  • 716 Replies
    2025 Replies
  • 331 Replies
    1928 Replies

How to get the 3 last controls in a panel?

Please LOCK your topics once you have found the solution to your question so we know you no longer require help with your query.
User avatar
Dummy1912
VIP - Donator
Posts: 1965

How to get the 3 last controls in a panel?

Wed Jul 26, 2017 3:21 pm

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

User avatar
CodenStuff
Site Admin
Posts: 4373

Re: How to get the 3 last controls in a panel?

Wed Jul 26, 2017 7:06 pm

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.

User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Wed Jul 26, 2017 9:32 pm

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

User avatar
CodenStuff
Site Admin
Posts: 4373

Re: How to get the 3 last controls in a panel?

Wed Jul 26, 2017 10:11 pm

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.

User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Wed Jul 26, 2017 10:33 pm

I don't have any textbox or other controls
only strings liked i showed in my code :)

so how can we solved that please

User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Thu Jul 27, 2017 6:17 am

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?

User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Thu Jul 27, 2017 7:37 am

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


User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Thu Jul 27, 2017 8:39 am

: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

User avatar
CodenStuff
Site Admin
Posts: 4373

Re: How to get the 3 last controls in a panel?

Sat Jul 29, 2017 11:06 am

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.

User avatar
Dummy1912
VIP - Donator
Posts: 1965

Re: How to get the 3 last controls in a panel?

Sat Jul 29, 2017 11:13 am

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

Post Reply

Return to “Tutorial Requests”