Form vbmodal

Signaler
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
Bonjour

En vb6 j'utilise Me.Show vbModal
en net Me.ShowDialog()
Je reçois une erreur
Form that is already displayed modally cannot be displayed as a modal dialog box. Close the form before calling showDialog.

Merci d'avance

5 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
'Me' déjà affiché, semble-til ...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
me déja affiché ?
voila le code
Private Sub Message_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Visible = False
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
        Me.BackgroundImage = Image.FromFile(general.App_Path() & "\lcws\backgroundmessage.bmp")
        Me.BackgroundImageLayout = ImageLayout.Stretch

        Me.Width = Me.BackgroundImage.Width
        Me.Height = Me.BackgroundImage.Height
        Me.Label1.BorderStyle = BorderStyle.None
        Me.Label1.BackColor = Color.Transparent
        Me.Label1.ForeColor = Color.Aquamarine
        Me.Label1.Font = New Font("arial", 18, FontStyle.Bold, GraphicsUnit.Pixel)
        Me.Label1.Text = "Veux tu vraiment quitter ?"
        Me.cancel.AutoSize = True
        Me.cancel.Font = New Font("arial", 14, FontStyle.Bold, GraphicsUnit.Pixel)
        Me.cancel.Text = "Non"
        Me.cancel.ForeColor = Color.Black
        Me.conti.BackColor = Color.Blue
        Me.conti.AutoSize = True
        Me.conti.Font = New Font("arial", 14, FontStyle.Bold, GraphicsUnit.Pixel)
        Me.conti.Text = "Oui"
        Me.conti.ForeColor = Color.Black
        Me.Label1.Left = Me.Width / 2 - Me.Label1.Width / 2
        Me.Label1.Top = Me.Height / 2 - (Me.Label1.Height + Me.cancel.Height) / 2
        Me.cancel.Top = Me.Label1.Bottom + Me.cancel.Height * 0.8
        Me.conti.Top = Me.cancel.Top
        Me.cancel.Left = 6
        Me.conti.Left = Me.Width - 6 - Me.conti.Width

        Me.Left = 1024 / 2 - Me.Width / 2
        Me.Top = 768 / 2 - Me.Height / 2

        Me.ShowDialog()

    End Sub
Messages postés
329
Date d'inscription
jeudi 20 novembre 2003
Statut
Membre
Dernière intervention
10 mai 2014
4
Salut,

Tu ne peux pas appeler Me.Showdialog car Me se réfère à la fenêtre en cours donc déjà affichée. Dans ton cas fait Me.visible=true (au lieu de Me.Showdialog) et ta fenêtre sera visible car tu as fait un me.visible=false au début.



@+LIM
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Me.Left = 1024 / 2 - Me.Width / 2
Me.Top = 768 / 2 - Me.Height / 2

pourquoi diantre prendre 1024 * 768 comme taille en dur ????

utilises la vraie taille de ton ecran !

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
50
Salut
A propos de vb modal j'ai résolu le problème
j'ai crée la form at run time
dim myform as new form
ensuite je définis myform
myform.showmodal

A propos de 768 * 1024 d'utiliser la vraie taille
en vb6 tu as Screen.width Screen.height en net
je ne sais pas ?

Merci