tags:

views:

1887

answers:

4

Hi all,

The form is an About Us form so has nothing on it only a text box and a OK button.

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  Me.Close()
End Sub

Here is how I'm opening the form:

Private Sub AboutAppStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AboutAppStripMenuItem.Click
    Dim formAbout As New FormAbout()
    formAbout.Show()
End Sub

Why won't the button close the form? I'm puzzled, I tried another button just in case with the same result.

UPDATE: I set a break point on Me.Close() and it isn't reaching it when I click the button, I created a new button and the same thing happened.

Thanks

A: 

From MSDN:

Showing the control is equivalent to setting the Visible property to true. After the Show method is called, the Visible property returns a value of true until the Hide method is called.

Anton Gogolev
Spineless downvoters who don't back it up with a comment why...
Philip Wallace
+2  A: 

I am betting the event handler for the button1_click event has been inadvertently removed.

Try double-clicking on the button in design time and see if it pulls you back to that same exact piece of code - or a new event handler definition.

If it's a new event handler definition - copy your code there and delete the first one.

There are other ways to manually add the event handler in the designer's code-behind - but maybe that's for a later progression.

From within VS click the "Show all files" button in solutions explorer. Grab us the code in .Designer.vb and paste it in here and we'll nail it down for you definitively.

Here's mine:


    Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Form1
    Inherits System.Windows.Forms.Form

    'Form overrides dispose to clean up the component list.
     _
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        Try
            If disposing AndAlso components IsNot Nothing Then
                components.Dispose()
            End If
        Finally
            MyBase.Dispose(disposing)
        End Try
    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.
     _
    Private Sub InitializeComponent()
        Me.Button1 = New System.Windows.Forms.Button
        Me.SuspendLayout()
        '
        'Button1
        '
        Me.Button1.Location = New System.Drawing.Point(131, 91)
        Me.Button1.Name = "Button1"
        Me.Button1.Size = New System.Drawing.Size(133, 50)
        Me.Button1.TabIndex = 0
        Me.Button1.Text = "Button1"
        Me.Button1.UseVisualStyleBackColor = True
        '
        'Form1
        '
        Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
        Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
        Me.ClientSize = New System.Drawing.Size(292, 266)
        Me.Controls.Add(Me.Button1)
        Me.Name = "Form1"
        Me.Text = "Form1"
        Me.ResumeLayout(False)

    End Sub
    Friend WithEvents Button1 As System.Windows.Forms.Button

End Class
Jeff Olson
handle keyword is in question above
Fredou
A: 

when formabout is open

click on pause(break all) button in visual studio

click on step into in debug in visual studio

click on the close button in formabout

you will see which code is executed, if any

* edit *

another question

is formabout.enabled property is true?

Fredou
A: 

I tested the following

Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) _
                          Handles Button1.Click
    Dim f As New Form2
    f.Show()
End Sub
End Class


Public Class Form2
Private Sub Button1_Click(ByVal sender As System.Object, _
                          ByVal e As System.EventArgs) _
                          Handles Button1.Click
    Me.Close()
End Sub
End Class

and did not have problems. As was suggested, re-create your button and code.

dbasnett