Click here to Skip to main content
15,889,651 members
Home / Discussions / Visual Basic
   

Visual Basic

 
GeneralRe: Open / Display SVG images within Visual Basic 6 Pin
Darrell Hagan 202113-Jun-21 12:53
Darrell Hagan 202113-Jun-21 12:53 
QuestionCould someone explain why For Each and For Next loops behave differently with lists? Pin
MattiasW768-Sep-18 14:13
MattiasW768-Sep-18 14:13 
AnswerRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
Eddy Vluggen8-Sep-18 23:51
professionalEddy Vluggen8-Sep-18 23:51 
QuestionRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
MattiasW769-Sep-18 1:04
MattiasW769-Sep-18 1:04 
AnswerRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
Eddy Vluggen9-Sep-18 2:11
professionalEddy Vluggen9-Sep-18 2:11 
GeneralRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
MattiasW7620-Sep-18 9:09
MattiasW7620-Sep-18 9:09 
AnswerRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
Dave Kreskowiak9-Sep-18 4:54
mveDave Kreskowiak9-Sep-18 4:54 
GeneralRe: Could someone explain why For Each and For Next loops behave differently with lists? Pin
MattiasW7627-Sep-18 2:59
MattiasW7627-Sep-18 2:59 
Wanted to prove this but being a Father and Husband I'm unable to control my spare time.

However, If anyone is interested I did this little code to test this:
VB
Sub TestForLoop()

    ' Declare a list of rectangles and add 3 rectangles to it
    Dim lstRectangles As New List(Of Rectangle)
    lstRectangles.Add(New Rectangle(100, 200, 1000, 2000))
    lstRectangles.Add(New Rectangle(500, 150, 500, 200))
    lstRectangles.Add(New Rectangle(500, 700, 1500, 2000))

    Dim pre, n As Integer


    Debug.WriteLine(vbCrLf & "Inside Loop:")

    ' I'm skipping the first rectangle to avoid division with zero.
    For i As Integer = 1 To lstRectangles.Count - 1
        With lstRectangles(i)

            ' Do a change to the rectangle within the with-block.
            lstRectangles(i) = New Rectangle(.Left + 10, .Top, .Width, .Height)

            ' Show Change.
            Debug.WriteLine("Rectangle " & i)
            Debug.WriteLine("    1st result, Direct Call: {0}  -  With-block: {1}  -  (Added:
                           10)", lstRectangles(i).Left, .Left)

            ' Do calculations based on values from previous rectangles.
            n = lstRectangles(i - 1).Left / i

            ' Do a new change to the rectangle based on calulations and still within the same with-block.
            lstRectangles(i) = New Rectangle(.Left + n, .Top, .Width, .Height)

            ' Show new change.
            Debug.WriteLine("New result, Direct Call: {0}  -  With-block: {1}  -  (Added:
                           {2})", lstRectangles(i).Left, .Left, n)
        End With
    Next

    Debug.WriteLine(vbCrLf & "Outside Loop:")

    For i As Integer = 1 To lstRectangles.Count - 1
        With lstRectangles(i)
            Debug.WriteLine("Result: ({0}x{1}, {2}x{3})", .Left, .Top, .Width, .Height)
        End With
    Next

End Sub


This produced this result:

Inside Loop:
Rectangle 1
  1st result, Direct Call: 510  -  With-block: 500  -  (Added: 10)
  New result, Direct Call: 600  -  With-block: 500  -  (Added: 100)
Rectangle 2
  1st result, Direct Call: 510  -  With-block: 500  -  (Added: 10)
  New result, Direct Call: 800  -  With-block: 500  -  (Added: 300)

Outside Loop:
Result: (600x150, 500x200)
Result: (800x700, 1500x2000)


The result should have been 610 and 815. The added 10s disappears. This shows that the with-block reports the same value to both calculations even though there has been a change between them. However all direct calls give the updated value.

Thank you for clearing this out Dave.
QuestionAdding Custom TabPage to TabControl: Closed Pin
mo14927-Sep-18 11:12
mo14927-Sep-18 11:12 
QuestionHow to declare Crypto? Pin
Member 139535037-Sep-18 6:04
Member 139535037-Sep-18 6:04 
AnswerRe: How to declare Crypto? Pin
Richard Deeming7-Sep-18 7:46
mveRichard Deeming7-Sep-18 7:46 
GeneralRe: How to declare Crypto? Pin
Member 1395350314-Sep-18 3:19
Member 1395350314-Sep-18 3:19 
QuestionCurrency textbox Pin
Member 139744835-Sep-18 16:08
Member 139744835-Sep-18 16:08 
AnswerRe: Currency textbox Pin
Mycroft Holmes5-Sep-18 18:34
professionalMycroft Holmes5-Sep-18 18:34 
AnswerRe: Currency textbox Pin
dan!sh 5-Sep-18 19:56
professional dan!sh 5-Sep-18 19:56 
Questionwindows version in vb.net Pin
JR2123-Sep-18 0:20
JR2123-Sep-18 0:20 
AnswerRe: windows version in vb.net Pin
Eddy Vluggen3-Sep-18 1:45
professionalEddy Vluggen3-Sep-18 1:45 
AnswerRe: windows version in vb.net Pin
Dave Kreskowiak3-Sep-18 13:31
mveDave Kreskowiak3-Sep-18 13:31 
QuestionHow to multi Highlight text different 2 textbox in datagridview VB.net? Pin
CodieCalm2-Sep-18 22:26
CodieCalm2-Sep-18 22:26 
QuestionCount char in string? Pin
Member 1395409621-Aug-18 22:43
Member 1395409621-Aug-18 22:43 
AnswerRe: Count char in string? Pin
Jochen Arndt21-Aug-18 23:32
professionalJochen Arndt21-Aug-18 23:32 
GeneralRe: Count char in string? Pin
Chris Quinn22-Aug-18 4:23
Chris Quinn22-Aug-18 4:23 
GeneralRe: Count char in string? Pin
Jochen Arndt22-Aug-18 5:08
professionalJochen Arndt22-Aug-18 5:08 
GeneralRe: Count char in string? Pin
Richard Deeming22-Aug-18 8:58
mveRichard Deeming22-Aug-18 8:58 
GeneralRe: Count char in string? Pin
Chris Quinn22-Aug-18 20:55
Chris Quinn22-Aug-18 20:55 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.