2009-04-16 8 views
1

Le formulaire est un formulaire À propos de nous n'a donc rien d'autre qu'une zone de texte et un bouton OK.VB.NET Me.Close() ne fonctionne pas, le formulaire ne se ferme pas?

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

Voici comment j'ouvre la forme:

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 

Pourquoi pas le bouton fermer le formulaire? Je suis perplexe, j'ai essayé un autre bouton juste au cas où le résultat serait le même. MISE À JOUR: J'ai mis un point d'arrêt sur Me.Close() et il ne l'atteint pas quand je clique sur le bouton, j'ai créé un nouveau bouton et la même chose s'est produite.

Merci

+0

quel code est après formabout.show? – Fredou

+0

Edité pour montrer qu'il n'y a pas de code après formabout.show. – Scott

+0

Avez-vous peut-être changé le nom de button1? Cela briserait le câblage de l'événement ... –

Répondre

0

De MSDN:

Affichage du contrôle équivaut à définir la propriété Visible à true. Après l'appel de la méthode Show, la propriété Visible renvoie une valeur true jusqu'à ce que la méthode Hide soit appelée.

+1

Downvoters sans spin qui ne sauvegardent pas avec un commentaire pourquoi ... –

2

Je parie que le gestionnaire d'événements pour l'événement button1_click a été supprimé par inadvertance. Essayez de double-cliquer sur le bouton au moment de la conception et vérifiez s'il vous ramène à la même partie du code ou à une nouvelle définition du gestionnaire d'événements.

S'il s'agit d'une nouvelle définition de gestionnaire d'événements, copiez votre code et supprimez le premier.

Il existe d'autres façons d'ajouter manuellement le gestionnaire d'événements dans le code-behind du concepteur, mais peut-être pour une progression ultérieure. Depuis VS, cliquez sur le bouton "Afficher tous les fichiers" dans l'explorateur de solutions. Prenez-nous le code dans .Designer.vb et collez-le ici et nous allons le clouer pour vous définitivement.

est ici le mien:


    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 
+0

gérer le mot clé est en question ci-dessus – Fredou

0

quand formabout est ouvert

cliquez sur pause (pause tout) bouton en studio visuel

cliquez sur l'étape dans au débogage dans Visual Studio

cliquez sur le bouton de fermeture dans le formulaire

y ous voir quel code est exécuté, le cas échéant

* modifier *

autre question

est formabout.enabled propriété est vrai?

0

J'ai testé la

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 

et après ne pas avoir des problèmes. Comme suggéré, recréez votre bouton et votre code.

0

Ajouter vous Bouton Dynamiquement susceptible de résoudre le problème. Placez le code suivant dans l'événement load d'environ Form.

Public Sub FormAbout_Load(ByVal sender as object,ByVal e as System.EventArgs)Handles Me.Load 

Dim btn as new Button() 
AddHandler btn.Click ,AddressOf _ClickToClose 

End Sub 

Private Sub _ClickToClose(ByVal sender as object,ByVal e as System.EventArgs) 
    Me.Close() 
End Sub 
0

Simple.

  1. Sélectionnez Propriétés du projet dans l'Explorateur de solutions.
  2. Sélectionnez l'onglet Sécurité pour décocher la case "Activer ClickOnce ..." ou sélectionnez "Il s'agit d'une application de confiance complète".
  3. Enregistrez les paramètres de propriétés.

Résolu.