changement de formulaire

changement de formulaire - VB/VBA/VBS - Programmation

Marsh Posté le 13-06-2005 à 11:14:36    

Salut
Est ce que qq'un sait la syntaxe pr aller sur un formulaire en appuyant sur un bouton contenu dans un autre formulaire?
 
Si je me souviens bien c un truc du style    Fr.show  mais je me souvien pas du reste.
 
Merci d'avance pour votre aide

Reply

Marsh Posté le 13-06-2005 à 11:14:36   

Reply

Marsh Posté le 13-06-2005 à 16:12:29    

Salut
 
En .NET c'est:
Dim MonNouveauFormulaire As New Formulaire2
MonNouveauFormulaire.Show()
 
A+

Reply

Marsh Posté le 14-06-2005 à 10:13:00    

merci de ton aide
 
Est ce que par hasard tu serai commetn on fait pour appeler des informations d'un formulaire pr les afficher ds un autre?
Merci d'avance pour ton aide

Reply

Marsh Posté le 14-06-2005 à 11:15:47    

Il y a plusieurs méthodes. Perso j'utilise la plupart du temps un module de classe ou je déclare les variables qui m'intéressent pour stocker des informations en passant d'un form à un autre (= variable globale).

Reply

Marsh Posté le 14-06-2005 à 11:30:11    

tu peu me donner le code qu'il fo ecrire stp

Reply

Marsh Posté le 14-06-2005 à 11:41:45    

Alors, en VB.NET ça donnerait :
1. Tu crées un module : dans le menu : Projet ==> Ajouter un module que tu nommes par exemple MonModule.vb
2. J'vais traiter un exemple avec 2 form, Formulaire1 a une cmbbox et un bouton, Formulaire2 une txtbox
3. Dans le module, tu écris :

Code :
  1. Public ValeurCmbBox as String


4. Dans le formulaire 1, le code du bouton Valider sera :

Code :
  1. MonModule.ValeurCmbBox = MaCmbBox.SelectedItem
  2. Dim NewForm2 as New Formulaire2
  3. NewForm2.Show()


5. Enfin, dans ton 2ème formulaire, pour la fonction Load, tu écris :

Code :
  1. MaTxtBox.Text = MonModule.ValeurCmbBox


 
Donc avec ce code, tu récupère ce que tu as sélectionné dans ta combobox et tu l'affiche dans une textbox qui se trouve sur un autre form !
 
A+

Reply

Marsh Posté le 14-06-2005 à 12:10:07    

t'utilise kel version de VB.net?  
Moi c'est la version 2002

Reply

Marsh Posté le 14-06-2005 à 12:11:01    

Moi c'est la 2003 !

Reply

Marsh Posté le 14-06-2005 à 12:19:41    

c koi la fonction LOAD?
Tu peux m'expliquer stp

Reply

Marsh Posté le 14-06-2005 à 12:26:59    

Alors c'est la fonction qui est lancée au chargement de ton formulaire !

Reply

Marsh Posté le 14-06-2005 à 12:26:59   

Reply

Marsh Posté le 14-06-2005 à 12:27:14    

Pour y avoir accès, tu peux faire ceci :
En mode Concepteur, dble clic sur ton formulaire (Autre part que sur une txtbox ou autre...) et normalement, le code va s'afficher avec Formulaire_Load(...)...

Reply

Marsh Posté le 14-06-2005 à 12:29:03    

j'ai pourtant fait com tu ma dit ms ca ne marche pas  
snif snif

Reply

Marsh Posté le 14-06-2005 à 12:43:53    

Je te reposte le code !
 
Module : (MonModule.vb)

Code :
  1. Module MonModule
  2.     Public ValeurCmbBox As String
  3. End Module


 
Formulaire 1 : (Form1.vb)

Code :
  1. Public Class Form1
  2.     Inherits System.Windows.Forms.Form
  3. #Region " Code généré par le Concepteur Windows Form "
  4.     Public Sub New()
  5.         MyBase.New()
  6.         'Cet appel est requis par le Concepteur Windows Form.
  7.         InitializeComponent()
  8.         'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
  9.     End Sub
  10.     'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
  11.     Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  12.         If disposing Then
  13.             If Not (components Is Nothing) Then
  14.                 components.Dispose()
  15.             End If
  16.         End If
  17.         MyBase.Dispose(disposing)
  18.     End Sub
  19.     'Requis par le Concepteur Windows Form
  20.     Private components As System.ComponentModel.IContainer
  21.     'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
  22.     'Elle peut être modifiée en utilisant le Concepteur Windows Form. 
  23.     'Ne la modifiez pas en utilisant l'éditeur de code.
  24.     Friend WithEvents ComboBox1 As System.Windows.Forms.ComboBox
  25.     Friend WithEvents Button1 As System.Windows.Forms.Button
  26.     <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  27.         Me.ComboBox1 = New System.Windows.Forms.ComboBox
  28.         Me.Button1 = New System.Windows.Forms.Button
  29.         Me.SuspendLayout()
  30.         '
  31.         'ComboBox1
  32.         '
  33.         Me.ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
  34.         Me.ComboBox1.Items.AddRange(New Object() {"Item1", "Item2", "Item3", "Item4", "Item5", "Item6"})
  35.         Me.ComboBox1.Location = New System.Drawing.Point(88, 48)
  36.         Me.ComboBox1.Name = "ComboBox1"
  37.         Me.ComboBox1.Size = New System.Drawing.Size(192, 21)
  38.         Me.ComboBox1.TabIndex = 0
  39.         '
  40.         'Button1
  41.         '
  42.         Me.Button1.Location = New System.Drawing.Point(168, 104)
  43.         Me.Button1.Name = "Button1"
  44.         Me.Button1.Size = New System.Drawing.Size(104, 40)
  45.         Me.Button1.TabIndex = 1
  46.         Me.Button1.Text = "Valider"
  47.         '
  48.         'Form1
  49.         '
  50.         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  51.         Me.ClientSize = New System.Drawing.Size(360, 294)
  52.         Me.Controls.Add(Me.Button1)
  53.         Me.Controls.Add(Me.ComboBox1)
  54.         Me.Name = "Form1"
  55.         Me.Text = "Form1"
  56.         Me.ResumeLayout(False)
  57.     End Sub
  58. #End Region
  59.     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  60.         ComboBox1.SelectedIndex = 0
  61.     End Sub
  62.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  63.         MonModule.ValeurCmbBox = ComboBox1.SelectedItem
  64.         Dim NewForm2 As New Form2
  65.         NewForm2.Show()
  66.     End Sub
  67. End Class


 
Formulaire 2 : (Form2.vb)

Code :
  1. Public Class Form2
  2.     Inherits System.Windows.Forms.Form
  3. #Region " Code généré par le Concepteur Windows Form "
  4.     Public Sub New()
  5.         MyBase.New()
  6.         'Cet appel est requis par le Concepteur Windows Form.
  7.         InitializeComponent()
  8.         'Ajoutez une initialisation quelconque après l'appel InitializeComponent()
  9.     End Sub
  10.     'La méthode substituée Dispose du formulaire pour nettoyer la liste des composants.
  11.     Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
  12.         If disposing Then
  13.             If Not (components Is Nothing) Then
  14.                 components.Dispose()
  15.             End If
  16.         End If
  17.         MyBase.Dispose(disposing)
  18.     End Sub
  19.     'Requis par le Concepteur Windows Form
  20.     Private components As System.ComponentModel.IContainer
  21.     'REMARQUE : la procédure suivante est requise par le Concepteur Windows Form
  22.     'Elle peut être modifiée en utilisant le Concepteur Windows Form. 
  23.     'Ne la modifiez pas en utilisant l'éditeur de code.
  24.     Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
  25.     <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
  26.         Me.TextBox1 = New System.Windows.Forms.TextBox
  27.         Me.SuspendLayout()
  28.         '
  29.         'TextBox1
  30.         '
  31.         Me.TextBox1.Location = New System.Drawing.Point(88, 72)
  32.         Me.TextBox1.Name = "TextBox1"
  33.         Me.TextBox1.Size = New System.Drawing.Size(224, 20)
  34.         Me.TextBox1.TabIndex = 0
  35.         Me.TextBox1.Text = ""
  36.         '
  37.         'Form2
  38.         '
  39.         Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
  40.         Me.ClientSize = New System.Drawing.Size(392, 174)
  41.         Me.Controls.Add(Me.TextBox1)
  42.         Me.Name = "Form2"
  43.         Me.Text = "Form2"
  44.         Me.ResumeLayout(False)
  45.     End Sub
  46. #End Region
  47.     Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  48.         TextBox1.Text = MonModule.ValeurCmbBox
  49.     End Sub
  50. End Class


 
A+
 

Reply

Marsh Posté le 14-06-2005 à 13:09:07    

Voilà l'erreur qd je met: ComboBox1.SelectedIndex = 0
 "L'argument spécifié n'était pas dans les limites de la plage des valeurs valides."
 
tu me dire pkoi ca ne marche pas

Reply

Marsh Posté le 14-06-2005 à 13:22:14    

oui, tu dois remplir la combobox ! C'est la propriété Items de la combo. Tu saisis 2 ou 3 valeurs...

Reply

Marsh Posté le 14-06-2005 à 13:37:41    

oui ca marche ms tu peu me dire comment tu fait pour afficher 2 ou plus de valeur stp ?

Reply

Marsh Posté le 14-06-2005 à 13:46:12    

Pour ajouter des valeurs dans ta combobox, tu fais :  
Tu déclare item du type que tu veux et tu fais
Combobox.Items.Add(item)

Reply

Marsh Posté le 14-06-2005 à 14:01:26    

je veux ajouter plusieurs valeurs dans des textBox differents?
je fais comment??
merci de ton aide

Reply

Marsh Posté le 14-06-2005 à 14:03:17    

j'ai fait ce code dans la form1
 
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        MonModule.ValeurCmbBox = ComboBox1.SelectedItem
        MonModule.ValeurCBox = ComboBox2.SelectedItem
        Dim NewForm2 As New Form2()
        NewForm2.Show()
    End Sub

Reply

Marsh Posté le 14-06-2005 à 14:27:27    

Tu veux stocker tous les éléments de ta combobox pour pouvoir les réutiliser après ?

Reply

Marsh Posté le 14-06-2005 à 14:30:11    

en gait j'ai un formulaire sur lekel je rentre un nom, prenom, tel; setion, hierachique.
je veux que cezs infos soient tranféfé sur un autre formulaire.

Reply

Marsh Posté le 14-06-2005 à 14:36:13    

OK ! Ben c'est le même principe sauf que dans le module tu déclare un tableau qui te permettra de stocker ttes les infos.


Message édité par steppenwolf le 14-06-2005 à 14:36:36
Reply

Marsh Posté le 14-06-2005 à 14:49:36    

je sui paumé là..
tu peux m'exxpliquer comment faire stp

Reply

Marsh Posté le 14-06-2005 à 14:58:47    

Ce que tu peux faire : dans ton module, tu déclares autant de variables que tu veux passer au formulaire suivant.
 

Code :
  1. Public nom As String
  2. Public prenom As String
  3. Public tel As String... etc


 
ou, avec un tableau :

Code :
  1. Public Valeurs() As String


 
Ensuite, dans ton bouton qui te permet de passer à l'autre formulaire, tu stocke ce que tu as saisi dans les variables du module.
 
Après, dans le 2ème form t'as plus qu'à utiliser les variables de ton module qui contiennent les valeurs saisies.
 

Reply

Marsh Posté le 14-06-2005 à 15:27:51    

voilà le code de la form1 :
  Private Sub BtAffec_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtAffec.Click
        MonModule.nom = OL_Nom.SelectedItem
        Dim Utilisateur As New Utilisateur()
        Utilisateur.Show()
 
    End Sub
 
 
voilà le code de la form2:
Private Sub Utilisateur_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TbNom.Text = MonModule.nom
    End Sub
 
Ya t'il des fautes parce que ca marche pas?

Reply

Marsh Posté le 14-06-2005 à 15:43:32    

A priori c'est OK ! Tu peux expliquer ce qui ne marche pas ?
Ca t'affiche rien dans la txtbox ? Le pgm plante completement ?

Reply

Marsh Posté le 14-06-2005 à 15:47:30    

en fait j'ai remarquer que si je remplit la combobox ca marche
mais ac des textBox com form de départ ca marche pas
ton extractioon d'un formujlaire a un autre ca marche kavec des CmbBox?

Reply

Marsh Posté le 14-06-2005 à 16:00:24    

Pourtant ca marche aussi avec des textbox !
 
Un exemple pour passer une valeur saisie dans form1 vers form2 :
 
Dans ton module, tu déclares :

Code :
  1. Public Valeur as String


 
Dans form1, dans le code du bouton tu mets :

Code :
  1. MonModule.Valeur = MaTextBoxSurForm1.Text
  2. Dim frm2 As New Form2
  3. frm2.Show()


 
Dans form2, fonction load :

Code :
  1. MaTextBoxSurForm2.Text = MonModule.Valeur


Message édité par steppenwolf le 14-06-2005 à 16:18:19
Reply

Marsh Posté le 14-06-2005 à 16:14:32    

merci ca marche
derniere question: fo t'il remplir la CmbBox?

Reply

Marsh Posté le 14-06-2005 à 16:20:56    

Tout dépend si tu l'utilies ou pas... Si tu l'utilises pas, ca sert à rien mais si tu l'utilises c mieux de la remplir car si tu sélectionne à la base le 1er item avec

Code :
  1. Macmbbox.SelectedIndex = 0

et que t'as rien dans la combo, ca va planter !!!

Reply

Marsh Posté le 15-06-2005 à 08:28:10    

salu
je t'explique en fait cette cmbBox elle se remplit par incrementation automatique. Si tu veux qd j'appuie sur un bouton qui fait défiler les machines qui sont dans ma table le nom de l'utilisateur change atomatiquement. dc ma cmbBox n'est pas remplit. dc ac ton systeme ca me renvoie pas la valeur qu'il y a dans ma CmbBox

Reply

Marsh Posté le 15-06-2005 à 11:05:10    

Hello !
C'que j'te propose c'est de poster tt ton code car le dernier msg j'ai pas bien saisi...

Reply

Marsh Posté le 15-06-2005 à 11:27:48    

si tu veux j'ai un formulaire qui me relie a une base sous MySql. Cette base elle contient 3 tables. La table machine_enregistrees contient plusieurs champs dt le nom de l'utilisateur propre a la machine que je fais apparaître dans une CmbBox.
Sur ce formulaire j'ai des boutons de navigations qui me permettent de faire défiler les enregistrements contenus les uns et après les autres.  
En ce qui concerne l'utilisateur, j'ai un bouton pour l'affecter a une autre personne. J’affiche les valeurs concernant l’ancien utilisateur dans le formulaire. Mais le pb est que tt ce qui est ds une TxtBox il veut bien me le tranférer dans le formulaire mais ce qui est ds la CmbBox.  Peut tu m’aider ? ?
J’espere que tu as compris.  

Reply

Marsh Posté le 15-06-2005 à 15:11:48    

tu peux m'aider stp.  
ca m'ennerve, je pietine

Reply

Marsh Posté le 15-06-2005 à 19:43:19    

steppenwolf t'a demandé de poster ton code...
 
Tes descriptions sont incompréhensibles.

Reply

Marsh Posté le 16-06-2005 à 09:33:32    

en attendant ce que j'ai dans ma CmbBox ne s'affiche tjs pa....
En ce qui concerne mon code je vais pas pouvoir le poster aprce que j'en ai au moins 10 pages

Reply

Marsh Posté le 16-06-2005 à 13:48:33    

On te demande juste la partie concernée. Pas tout le code.
 
Evite aussi le langage SMS, c'est pas très engageant à lire la description de ton problème.
 
Concernant cette description, essaye d'être clair:
Noms de tes contrôles, code associé, exemple de données, effet attendu, effet observé, messages d'erreur (avec mention de la ligne dans le code.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed