DevX Home    Today's Headlines   Articles Archive   Tip Bank   Forums   

Results 1 to 11 of 11

Thread: VB.NET Help

  1. #1
    Join Date
    Oct 2005
    Posts
    95

    VB.NET Help

    Hi

    I need some help with VB.NET . I am trying to create a Button array . Once a user click on the first button he will see another button . When the usere will click on the first bitton again he will see different button . Every time a user click on the first button different button will appear . I have created a vb.NET button array where I have the first button creating dynamically and when user clicks on it he can see the second button . But I can not go further . Which means if the user click on the first button again nothig happen . Please help . Thanks .Here is my code

    Public Class Form1
    Inherits System.Windows.Forms.Form




    #Region " Windows Form Designer generated code "

    Public Sub New()
    MyBase.New()

    'This call is required by the Windows Form Designer.
    InitializeComponent()

    'Add any initialization after the InitializeComponent() call

    End Sub

    'Form overrides dispose to clean up the component list.
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
    If Not (components Is Nothing) Then
    components.Dispose()
    End If
    End If
    MyBase.Dispose(disposing)
    End Sub

    'Required by the Windows Form Designer
    Private components As System.ComponentModel.IContainer

    'NOTE: The following procedure is required by the Windows Form Designer
    'It can be modified using the Windows Form Designer.
    'Do not modify it using the code editor.
    Friend WithEvents Button1 As System.Windows.Forms.Button
    Friend WithEvents Button2 As System.Windows.Forms.Button
    Friend WithEvents Button3 As System.Windows.Forms.Button
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.Button1 = New System.Windows.Forms.Button
    Me.Button2 = New System.Windows.Forms.Button
    Me.Button3 = New System.Windows.Forms.Button
    Me.SuspendLayout()
    '
    'Button1
    '
    Me.Button1.Location = New System.Drawing.Point(176, 56)
    Me.Button1.Name = "Button1"
    Me.Button1.TabIndex = 0
    Me.Button1.Text = "Button1"
    Me.Button1.Visible = False
    '
    'Button2
    '
    Me.Button2.Location = New System.Drawing.Point(184, 88)
    Me.Button2.Name = "Button2"
    Me.Button2.TabIndex = 1
    Me.Button2.Text = "Button2"
    Me.Button2.Visible = False
    '
    'Button3
    '
    Me.Button3.AccessibleRole = System.Windows.Forms.AccessibleRole.ButtonMenu
    Me.Button3.AllowDrop = True
    Me.Button3.Location = New System.Drawing.Point(200, 120)
    Me.Button3.Name = "Button3"
    Me.Button3.TabIndex = 2
    Me.Button3.Tag = "hello"
    Me.Button3.Text = "Button3"
    Me.Button3.Visible = False
    '
    'Form1
    '
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    Me.ClientSize = New System.Drawing.Size(292, 273)
    Me.Controls.Add(Me.Button3)
    Me.Controls.Add(Me.Button2)
    Me.Controls.Add(Me.Button1)
    Me.Name = "Form1"
    Me.Text = "Form1"
    Me.ResumeLayout(False)

    End Sub

    #End Region

    Dim count As Integer



    Private Sub ClickButton(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click, Button2.Click, Button3.Enter

    Dim btn As Button

    btn = CType(sender, Button)
    'MsgBox(btn.Text)

    Button1.Show()


    End Sub



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load


    'Create the button
    Dim btn As New Button

    'Specify the location and the size
    btn.Location = New System.Drawing.Point(100, 20)
    btn.Size = New System.Drawing.Size(100, 20)
    btn.Text = "Add Buttons"

    'Add it to the forms control collection
    Me.Controls.Add(btn)


    'Link the event to the event handler
    AddHandler btn.Click, AddressOf Me.ClickButton



    End Sub


    End Class

  2. #2
    Join Date
    Apr 2004
    Location
    Lafayette, LA
    Posts
    200
    OK, you've got three buttons and then you add a forth button dynamically. But the event handle code always shows button1. Then when you click button1, it shows button1. No matter which button you click, it shows button1.

    If you want some random button to appear then you need to generate a random number confined to be between 0 and the number of buttons you have minus 1.
    Build an object array holding your buttons. Then based on the random number generated, index into the array and cast that object back into a button and show it.

    By the way, you do not have an array of buttons. After the form load event completes you have four destinct buttons for which one event handler is defined for their click events. So no matter which button is clicked, the same code runs.

  3. #3
    Join Date
    Oct 2005
    Posts
    95

    VB.NET Help

    Hi

    Thanks for your reply . But I could not understand what you have exactly said . Could you please so me some code or let me know how can I modify my code to make it work the way I want

    Thanks

  4. #4
    Join Date
    Apr 2004
    Location
    Lafayette, LA
    Posts
    200
    Looking at your code, you have three buttons configured on the form. All three of these buttons are invisible when the form is generated. All three of the buttons use the same event routine 'ClickButton' when any one of them is clicked. Then, in the form_load event routine, you generate another button and connect it's click event to the same handler as the other three. So you you have one event handler for all four buttons. However, this does not make them members of an array. They are all members of the form's controls collection. Arrays and collections are similar in ways but they are not the same.
    If you look at the code in your 'ClickButton' event routine, it will always make Button1 visible. It will never make any of the other buttons visible.
    From your short description, I can't tell exactly what your goal is. Do you want to make any random button visible when some other button is clicked, or do you want some other specific button to appear?
    If you make your goal more clear, I may be able to give you a specific example.

  5. #5
    Join Date
    Oct 2005
    Posts
    95

    VB.NET Help

    Hi

    Thanks so much for your reply . Here is what I like to have . I like to have one button ( Add button )on the form visible when the form load .When user click on the add button another button will appear underneath the Add button ( button1) . When user click on the Add button again another button ( button2 ) will appear beside the Button1 button . So when user click the Add button second time there will be two button underneath like a tab .

    Please let me know if this helps

    Thanks

  6. #6
    Join Date
    Apr 2004
    Location
    Lafayette, LA
    Posts
    200
    Do you know ahead of time how many buttons are needed?

  7. #7
    Join Date
    Oct 2005
    Posts
    95

    VB.NET Help

    Hi

    Thanks for your help . I need to have seven button underneath the Add button . So user will click seven time on the Add button to get the seven buttons underneath like a tab .

    Thanks

  8. #8
    Join Date
    Apr 2004
    Location
    Lafayette, LA
    Posts
    200
    Is this a class assignment or a business assignment?

  9. #9
    Join Date
    Oct 2005
    Posts
    95
    I need to get it done for my work . I have to add data grid to every buttons . I know that part .But Just can make the button part working

  10. #10
    Join Date
    Apr 2004
    Location
    Lafayette, LA
    Posts
    200
    You could add all of the buttons at design time and make all of them except the ADD button invisible. Then use a form level counter to keep track of haw many buttons have been made visible.

    Private Count as Integer

    Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

    If Count < 7 Then
    Select Case Count
    Case 0
    Button1.Visible = True
    Case 1
    Button2.Visivle = True
    Case 2
    Button3.Visible = True
    .
    .
    .
    Case 6
    Button7.Visible = True
    End Select
    Count += 1
    End If
    End Sub

    This is not elegant and will make changes a pain, but it is quick. (i.e. This is not the way it should be done.)

    To be more elegant, you could use a collection and simulate a control array. There are examples available on MSDN showing how to simulate a control array under .NET. Just go to the MSDN library and search for 'Control Array'.

  11. #11
    Join Date
    Oct 2005
    Posts
    95
    Thanks so much . I will try that and let you know

Similar Threads

  1. Replies: 6
    Last Post: 11-06-2002, 03:42 PM
  2. Will VB.NET be more stable than VB6?
    By Jason in forum .NET
    Replies: 125
    Last Post: 10-05-2002, 04:34 PM
  3. Is VB.Net difficult or not - OR - How difficult?
    By Michael Culley in forum .NET
    Replies: 6
    Last Post: 06-19-2002, 09:11 AM
  4. Why I like VB.NET
    By Tom Cabanski in forum .NET
    Replies: 74
    Last Post: 03-14-2001, 04:30 PM
  5. VB.NET: 3 points of view
    By David Kroll in forum .NET
    Replies: 33
    Last Post: 02-13-2001, 11:23 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center
 
 
FAQ
Latest Articles
Java
.NET
XML
Database
Enterprise
Questions? Contact us.
C++
Web Development
Wireless
Latest Tips
Open Source


   Development Centers

   -- Android Development Center
   -- Cloud Development Project Center
   -- HTML5 Development Center
   -- Windows Mobile Development Center