IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[VB.NET] MainMenu qui ouvre des forms...


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut
    Voici la source sa pourrait peut-etre taider:
    http://dreamteam2.free.fr/for/dev/Wi...plication2.rar

    Je suis entrain de regarder ton code pour essayer de trouve comment faire^^
    Pourrait tu faire un screenshot de ton appli car j'ai du mal a visualiser comment sa presente ^^,il y a une form principale avec un menu qui ouvre affreserve et dans cette form il y a un autre menu?
    à noter que la form2 (affreserve) contient exactement le meme code que celui ci plus haut bien sur..

  2. #2
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Je vois bien que çà ne te sautes pas aux yeux pourquoi çà ne marche pas comme tu le souhaiterais. C'est ta conception même qui est à revoir.
    Apparemment tu souhaites pouvoir créer une instance de AffChambres à partir de AffChambres mais qui soit unique t'es sûr de savoir ce que tu veux
    • 1. Je suppose que AffChambres permet de visualkiser pour le user la liste des chambres, d'en choisir une et de pouvoir programmer une reservation
      2. Donc en cas de reservation tu ouvre une AffReserve qui permet de reserver la chambre
      3. Donc pourquoi ne pas concevoir une appli MDI avec :
      [list:56565522c9] 1. FormChild pour la liste des chambres
      1. FormChild pour la reservation d'une chambre
      Toutes les deux affichables par le MainMenu de l'appliPrincipale
    [/list:u:56565522c9]
    Exemple simple testé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     
    Public Class MDIParent
      Inherits System.Windows.Forms.Form
     
      Private WithEvents Chambres As ChildChambres
      Private WithEvents Reservations As ChildReservations
     
      Public Sub New()
        MyBase.New()
        InitializeComponent()
      End Sub
      Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
          If Not (components Is Nothing) Then components.Dispose()
        End If
        MyBase.Dispose(disposing)
      End Sub
      Private components As System.ComponentModel.IContainer
      Friend WithEvents MenuPrincipal As System.Windows.Forms.MainMenu
      Friend WithEvents AffChambres As System.Windows.Forms.MenuItem
      Friend WithEvents AffReservations As System.Windows.Forms.MenuItem
      Friend WithEvents Quitter As System.Windows.Forms.MenuItem
      Friend WithEvents Horloge As System.Windows.Forms.MenuItem
      Friend WithEvents Timer1 As System.Windows.Forms.Timer
      <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
        Me.components = New System.ComponentModel.Container()
        Me.MenuPrincipal = New System.Windows.Forms.MainMenu()
        Me.AffChambres = New System.Windows.Forms.MenuItem()
        Me.AffReservations = New System.Windows.Forms.MenuItem()
        Me.Quitter = New System.Windows.Forms.MenuItem()
        Me.Horloge = New System.Windows.Forms.MenuItem()
        Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
        '
        'MenuPrincipal
        '
        Me.MenuPrincipal.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.Horloge, Me.AffChambres, Me.AffReservations, Me.Quitter})
        '
        'AffChambres
        '
        Me.AffChambres.Index = 1
        Me.AffChambres.Text = "Affichage des chambres"
        '
        'AffReservations
        '
        Me.AffReservations.Index = 2
        Me.AffReservations.Text = "Affichage des réservations"
        '
        'Quitter
        '
        Me.Quitter.Index = 3
        Me.Quitter.Text = "Quitter"
        '
        'Horloge
        '
        Me.Horloge.Index = 0
        Me.Horloge.Text = "Le "
        '
        'Timer1
        '
        Me.Timer1.Interval = 1000
        '
        'MDIParent
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(777, 280)
        Me.Font = New System.Drawing.Font("Arial", 9.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
        Me.IsMdiContainer = True
        Me.Menu = Me.MenuPrincipal
        Me.Name = "MDIParent"
        Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
        Me.Text = "MDIParent"
     
     End Sub
     
     Private Sub MDIParent_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Horloge.Text = "Le " & DateTime.Now.ToLongDateString & " à " & DateTime.Now.ToLongTimeString
        Me.Horloge.Enabled = False
        Me.Timer1.Start()
     End Sub
     Private Sub Chambres_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Chambres.Closing
       'confirmer ou pas ici la fermeture en cours de Chambres
     End Sub
     Private Sub Reservations_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles Reservations.Closing
       'confirmer ou pas ici la fermeture en cours de Reservations
     End Sub
     
     Private Sub AffChambres_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AffChambres.Click
       If (Me.Chambres Is Nothing) Then
         Me.Chambres = New ChildChambres()
         Me.Chambres.MdiParent = Me
         Me.Chambres.Visible = True
       End If
       Me.Chambres.BringToFront()
       Me.Chambres.Dock = DockStyle.Fill
     End Sub
     Private Sub AffReservations_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AffReservations.Click
       If (Me.Reservations Is Nothing) Then
          Me.Reservations = New ChildReservations()
          Me.Reservations.MdiParent = Me
          Me.Reservations.Visible = True
       End If
       Me.Reservations.BringToFront()
       Me.Reservations.Dock = DockStyle.Fill
     End Sub
     Private Sub Quitter_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Quitter.Click
       Application.Exit()
     End Sub
     
     Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As System.EventArgs) Handles Timer1.Tick
       Me.Horloge.Text = "Le " & DateTime.Now.ToLongDateString & " à " & DateTime.Now.ToLongTimeString
     End Sub
    End Class
    Voilà essayes au moins de comprendre l'intérêt d'une appli MDI, si des bugs surgissent suite à l'adaptation que tu en fait, evites de dire que le code ne 'marche' pas, et essayes au moins de voir les erreurs apportées par ton code ajouté, et essayes de comprendre ce que TON code met en echec.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Par défaut
    allo

    pour guillaume1998 et bien ton exemple reflete exactement ce que je dis des le debut... tu clic sur le bouton1 de la form1 puis la nouvelle form2 souvre... mais... la form1 reste visible a larriere... si tu met un "me.hide" à la form1 et bien si tu clic sur le X de la form2.. ton prog continu a rouler..

    mais je crois bien que cest neguib qui a solution a tout!

    Voilà essayes au moins de comprendre l'intérêt d'une appli MDI, si des bugs surgissent suite à l'adaptation que tu en fait, evites de dire que le code ne 'marche' pas, et essayes au moins de voir les erreurs apportées par ton code ajouté, et essayes de comprendre ce que TON code met en echec.
    dsl pour ma mauvaise attitude... tu va p-e comprendre qu'après 1 semaine de "marche pas" je men vien un peu trop impatient

    pour ce qui es de ton code bien jai jamais vraiment connu cetais koi un appli MDI donc quand je vois un erreur comme

    'Sub Main' was not found in 'mdi.Form1'.
    je comprend pas trop ou je me situe..!
    jai tout le temps fais des winforms sans de cassage de tete! LOL

    cest p-e quand je fais un nouveau projet.. dois-je choisir "windows application" ??

    merci vraiment mais vraiment beaucoup!
    8)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2005
    Messages : 62
    Par défaut
    pour guillaume1998 et bien ton exemple reflete exactement ce que je dis des le debut... tu clic sur le bouton1 de la form1 puis la nouvelle form2 souvre... mais... la form1 reste visible a larriere... si tu met un "me.hide" à la form1 et bien si tu clic sur le X de la form2.. ton prog continu a rouler..
    a d''accord excuse moi mais javais pas tout comprit ce que tu voulait en faite ^^


    Oui il faut faire windows application.^^

  5. #5
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    Salut Pleymo
    Je comprends bien ce que par quoi tu passes mais saches que c'est absolumenbt nécessaire et qu'il depend maintenant de toi d'en profiter pour progresser
    • 1. Je t'ai donné une piste sérieuse mais qui nécessite une méthode de travail que tu n'a pas encore acquis
      2. Donc pas d'impatience mais reste conséquent
      3. Un Bug survient = debuggage ( parfois 90 % du boulot dans nos débuts de programmeur )
      4. Essayer de comprendre le message d'erreur de l'exception non pas comme un echec mais bien comme un garde-fou empêchant de compiler n'importe quoi > parceque tu vas faire l'effort de te casser la tête avec çà , alors tu va devenir de plus en plus professionnel dans ta demarche de developpeur
      5.
      Citation Envoyé par Exception
      'Sub Main' was not found in 'mdi.Form1'.
      Le sub main est le point d'entrée de l'application, ce par quoi elle doit commencer. Donc Heureusement que Visual Studio ne le decide pas à ta place quand même. Tu devrais être content d'avoir cette liberté de choix Donc tu clickes 'bouton droit" sur ton projet dans l'explorateur de solutions >> 'Propriétés' >>Dans la boite de dialogue tu devrais voir:
      [list:50d33e7779]Propriétés communes :
      [list:50d33e7779]> General
      [list:50d33e7779] >Objet de demarrage : ici tu choisis dan,s la liste déroulante par exemple le formulaire que tu souhaites comme point d'entrée de l'application;ou sinon si tu choisis 'Sub Main, c'est que tu as developpé une classe qui contient ce nom de méthode (Shared Sub Main)
    [/list:u:50d33e7779][/list:u:50d33e7779][/list:u:50d33e7779]

    Autre garde-fou lorsqu'on developpe en VB c'est d'imposer tout en haut de sa classe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Option Explicit On
    Option Strict On
    Bien sûr çà risque de t'enerver car plus de message d'erreurs et d'avertissement vont apparaître mais en les résolvant tu vas comprendre ce que c'est de coder 'proprement' notamment sur les typages. Ainsi tu diminues de plus en plus le risque de bugs à l'execution (et çà c'est beaucoup plus rageant qu'à la compilation)

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    139
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 139
    Par défaut
    bonjour neguib

    merci beaucoup pour ton support. dans lfond.. en mettant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Option Explicit On 
    Option Strict On
    jai pas besoin de faire les try-catch derreur... mes erreurs sortiront plus souvent de cette maniere

    j'avais deja utiliser la propriété de demarrage..! merci beaucoup aussi pour le reste

    il me reste encore a differencier les differentes composantes qui me mele quelque peu comme le sub main et le sub new lol

    dans lfond le shared sub main est le programme principal qui sera partagé aux autres form (je croise les droits que je comprenne) lol

    jai encore bien du chemin a faire je men rend compte... jai reussi a faire fonctionner ton programme, cela serai une solution mais pas vraiment ce que je voulais faire au depart encore héhé donc je vais men tenir a ma solution de depart ou je vais prendre la tienne tout dependant de mon client...

    je vais etre plus conscencieux a lavenir mais bien sur... cela ne mempechera pas de vnir poster quelques sujet et den repondre a quelque uns!

    merci beaucoup a tous!

    8)

  7. #7
    Expert confirmé
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 65
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Par défaut
    no problem
    penses bien à defendre auprès de ton client l'intérêt de ne pas avoir de fenêtres qui s'ouvrent un peu partout pour le confort de l'utilisateur
    sinon il existe egalement des solutions avec une seule Form et des usercontrols, sans oublier les tabcontrols
    @+

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Un OpenFileDialog qui ouvre des fichiers ou dossiers
    Par Ziki_s dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/06/2008, 20h17
  2. Les images qui ouvre des popup....
    Par Sagytarus dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 29/12/2004, 14h06
  3. Savoir qui ouvre une form
    Par rvzip64 dans le forum Composants VCL
    Réponses: 2
    Dernier message: 16/07/2004, 16h25
  4. [VB.NET] Classe qui pilote des Fichier .INI
    Par sygale dans le forum Windows Forms
    Réponses: 3
    Dernier message: 01/06/2004, 20h04
  5. [VB.NET]La bonne gestion des forms
    Par Wintermute dans le forum Windows Forms
    Réponses: 11
    Dernier message: 13/01/2004, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo