[Visual Basic] Aide pour les menus

Résolu/Fermé
TyTy - 5 sept. 2009 à 23:06
 TyTy - 6 sept. 2009 à 20:07
Bonjour tout le monde,
Je suis actuellement en train de programmer des trucs pour moi avec Microsoft Visual Basic 2008 Express.
Je rencontre deux problème que je n'ai pas réussi à résoudre après des heures de recherche (suis peut-être pas doué lol) :

-Le premier c'est que j'ai créé un menu dans ma fênetre et je voudrai effacer le contenu de ma fênetre quand je change de menu. J'explique, pour le moment j'ai un menu avec deux sous-menu, quand je clique sur le sous-menu1 j'affiche la GroupBox1 et j'aimerai que lorsque je clique sur le sous-menu2, la GroupBox1 disparaisse et que la GroupBox2 apparaisse. Comme elles n'ont pas la même taille je vois les deux mais supperposés ... J'aimerai éviter le GroupBox1.Visible = False car je vais en rajouter et ça va faire beaucoup si je doit prendre en compte possibilité à effacer pour en mettre 1 seule, d'où ma demande comment effacer "tout le contenue de la fenêtre" (sauf les menu et la StatusBar lol)

-Le second et totalement différent, j'ai créé une fonction mais j'aimerai qu'elle me retourne 3 nombres (style Double avec virgule...) que je puisse récupérer indépendemment. J'ai essayé Return a,b,c et
Return a
Return b
Return c
mais ça ne fonctionne pas, c'est impossible ?
Voici ma fonction
Function Trinome(ByVal A As Double, ByVal B As Double, ByVal C As Double) As Double
        Dim d, x1, x2 As Double
        d = B * B - 4 * A * C
        If d >= 0 Then
            x1 = (-B + Math.Sqrt(d)) / (2 * A)
            x2 = (-B - Math.Sqrt(d)) / (2 * A)
        End If
        Return d,x1,x2
    End Function


Merci à ceux qui ont eu le courage de me lire jusqu'au bout et encore plus à ceux qui pourront m'aider.
Cordialement.
A voir également:

6 réponses

william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
6 sept. 2009 à 00:43
slt
pour le premier probleme je reflechis encore cr je ne l'ai as bien sais

sinon pour e 2 etant donnée qu le fonctions ont en programmation ont presque les mm definition qu'en mathématiques, je drais ce n'estpas possible que ta fonction tertourne 3 valeurs ben selon moi.
mais il y'a une astuce que tu peux utliser
ell consiste à declarer les 3 variables A, B et C soi public ou ben privées celadepend de la porté ou tu les veux, ensuite il te faux les passer à la fonction par reference car et faireretourner tes valeurs avec quellesregarde ce ci

Sub Trinome(ByRef A As Double, ByRef B As Double, ByRef C As Double)
        Dim d, x1, x2 As Double
        d = B * B - 4 * A * C
        If d >= 0 Then
            x1 = (-B + Math.Sqrt(d)) / (2 * A)
            x2 = (-B - Math.Sqrt(d)) / (2 * A)
        End If
        A = d
        B = x1
        C = x2
 End Sub


tu comprend bien que tu poura utilisertes variable à la sorti de ton programme et qu'elles auront changé de valeurs

utilitaion
Public a, b, c AS Double
'Avant 
a = 1
b = 7
c = 12
Call Trinome(a,b,c)
'Apres
a = 1
b = -3
c = -4

cdlt.
;-)
0
Merci bien ça marche niquel :)
Me reste le problème numéro 1, le plus important ^^
0
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
6 sept. 2009 à 14:08
Slt
ok je sais que t'as essayé de mieux expliquer ton pb1 mais je ne voie pas bien le pb

cdlt.
;-)
0
Bon je vais tenter une deuxième explication de mon problème 1.
Quand je lance mon programme, j'ai une fenêtre vide ormis un menu et une StatusBar (mes GroupBox sont invisibles).
Lorsque je clique sur sous-menu1, ma GB1 s'affiche (Me.GroupBox1.Visible = True) jusque là ok.
Ensuite je veux changer, je clique sur sm2 pour afficher ma GB2 mais celle-ci apparaît derrière la GB1.
J'avais pensé mettre Me.GroupBox1.Visible = False mais le problème c'est que je vais avoir une 10aine (si ce n'est plus) de sous-menu correspodant chacun à une GroupBox différente.
Donc j'aimerai avoir une seule commande pour effacer tout le contenu de ma Fenêtre (sauf menu et StatusBar)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
william7007 Messages postés 335 Date d'inscription dimanche 28 décembre 2008 Statut Membre Dernière intervention 23 mars 2010 46
6 sept. 2009 à 18:39
Slt
je ne sais pas si j'ai bien compris mais essie ça voir et dit moi si je ne me ss pas trompé

'procedure de gestion de controle

Private Sub afficheControle(ByVal numCont As Integer)
        'Ici on rend tut les groupeBox invisible 
        Dim cont As Control
        For Each cont In Me.Controls
            If TypeOf cont Is GroupBox Then
                cont.Visible = False
            End If
        Next

        'Ici on affiche seulement le groupBox qui nus plait
        Select Case numCont
            Case 1
                GroupBox1.Visible = True
            Case 2
                GroupBox2.Visible = True
            Case 3
                GroupBox3.Visible = True
        End Select
    End Sub


'exemple d'utilisation dans un menuItem ou un bouton,....

 Private Sub Button9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button9.Click
        Call afficheControle(2)
    End Sub

    Private Sub Button10_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button10.Click
        Call afficheControle(3)
    End Sub


cdlt.
;-)
0
Alala un enorme merci à toi, ça marche au poil !!
:)
0