0

I am writing a program that will take input from the user in the form of a tree-view and create a form and a database based on the tree-view. I have everything working except the group-box control for the boolean expression. I will give a sample code of the text boxes that do work and then I will give the code that is not working.

For Each babyNode In childNode.Nodes
                    If babyNode.Text.ToString = "Small Text ( Less than 255 Characters )" Then
                        Dim TextField As New System.Windows.Forms.TextBox
                        Dim labelField As New System.Windows.Forms.Label
                        'Create and position the label field
                        With labelField
                            .Name = fieldName & "label:"
                            .Text = fieldName

                            iSizW = .Size.Width
                            iSizH = .Size.Height

                            .Left = iLocX
                            .Top = iLocY

                            tabPage.Controls.Add(labelField)
                        End With
                        'Create and position the text field
                        With TextField
                            .Name = fieldName
                            .Multiline = False
                            .WordWrap = False
                            .MaxLength = 255
                            .Text = babyNode.NextNode.Text.ToString
                            .Visible = True

                            iSizW = .Size.Width

                            iLocX = iLocX + iSizW + 5

                            .Left = iLocX
                            .Top = iLocY

                            tabPage.Controls.Add(TextField)
                        End With
                        'Increment the Location for the next label field
                        iLocX = iLocX + iSizW + 10

                        'Check to see if the control is going to run of the form, if it
                        'is then go down to the next row
                        If (iLocX + iSizW > Me.Size.Width - 20) Then
                            iLocX = 5
                            iLocY = iLocY + iSizH + 5
                        End If
                        Exit For

That works perfectly. This is the group box control that is not working:

ElseIf babyNode.Text.ToString = "Boolean (True or False)" Then
                        Dim tempX As Integer
                        tabPage.Controls.Add(groupBoxItem)
                        With groupBoxItem
                            .Name = fieldName
                            .Text = fieldName
                            .Width = 217
                            .Height = 40

                            iSizW = .Width
                            iSizH = .Height

                            iLocX = iLocX + iSizW + 5

                            .Left = iLocX
                            .Top = iLocY

                            .Controls.Add(booleanTrueField)
                            With booleanTrueField
                                .Text = "True"
                                .Top = 14
                                iSizW = .Size.Width
                                tempX = .Location.X
                                .Left = tempX + 5
                                If babyNode.NextNode.Text.ToString = "True" Then
                                    .Checked = True
                                End If
                            End With

                            .Controls.Add(booleanFalseField)
                            With booleanFalseField
                                .Text = "False"
                                .Top = 14
                                .Left = tempX + iSizW + 5
                                tempX = .Location.X
                                iSizW = .Size.Width
                                If babyNode.NextNode.Text.ToString = "False" Then
                                    .Checked = True
                                End If
                            End With
                            MsgBox("Adding Field: " & .Name.ToString & vbCr & "X: " & .Location.X & vbCr & "Y: " & .Location.Y)
                        End With

                        'Increment the Location for the next control
                        iLocX = iLocX + iSizW + 10

                        If (iLocX + iSizW > Me.Size.Width - 20) Then
                            iLocX = 5
                            iLocY = iLocY + iSizH + 5
                        End If
                        Exit For

Currently I am using Visual Studio 2005, VB 6 I think. If there are any questions, I would be happy to answer them - thanks in advance for any help I do receive.

P.S. in tests it seems to position them semi-correctly (at least not in the same spot) as indicated by messages I receive by the program - but when the form loads they are either one on top of another, or whichever is not the most recent addition is gone.

1
Contributor
1
Reply
2
Views
9 Years
Discussion Span
Last Post by Mr.Wobbles
0

Goodness, This was a simple fix, something that occurs when I stare at code to long - I miss the obvious. I was only declaring the group box at the beginning and therefore using the same one every time I ran the code. So I moved the group box intialization to after the ElseIf and everything works great. --

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.