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

VB.NET Discussion :

passage d'objets forms


Sujet :

VB.NET

  1. #1
    Invité
    Invité(e)
    Par défaut passage d'objets forms
    Bonjour,

    j'ai des soucis au niveau du passage d'objets entre formulaires ... par exemple dans un événement click d'un bouton j'initialise un objet:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Public Class form_intervention
        Inherits System.Windows.Forms.Form
        Public intervention As intervention
     
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_detailinterv.
     
    intervention = m.tab_intervention.Item(index())
    et dans plusieurs autres formulaires je souhaiterais récupèrer l'objet intervention. Alors je sais pas comment m'y prendre entre créer un accesseur pour intervention, mettre la variable intervention à Public , public shared. créer une variable d'instance form_intervention dans mes autres formulaires pour pouvoir accéder à mon objet

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    détail un peu plus, parce que normalement tu peux passer des objets en parametres entre tes feuilles sans problemes


    exemple
    sur Form1 il y a un bouton

    sur Form2
    friend sub rendInvisible(CTRL as system.windows.forms.control)
    ctrl.visible = false
    end sub


    normalement sur Form1 tu peux faire Form2.rendinvisible me.bouton


    enfin mets nous le code qui te pose probleme, pas juste la déclaration de ton objet
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Invité
    Invité(e)
    Par défaut
    j'explique un peu le contexte avant , je choisis un item dans un listview (formulaire intervention) pour en avoir le détail (formulaire détail). dans ma listView je récupère un objet intervention que je souhaite modifier dans le formulaire détail.

    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
     
    Public Class form_intervention
    Public intervention As Intervention
    public m as new menu
     
        Public Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button_detailinterv.Click
     
            Dim form_detail As New detailintervention
            If listeintervention.SelectedIndices.Count = 0 Then
                MsgBox("Veuillez selectionnez un élément dans la liste")
            Else
                m.traitement.chargerInterventions() <-- remplissage tableau depuis le formulaire Menu
                intervention = m.tab_intervention.Item(index()) <-- récupération de l'objet séléctionné
     
                'on affiche les details de l'intervention selectionné'
                form_detail.horaire.Text = intervention.getHeurePrevue
                form_detail.description.Text = intervention.getDescription
                form_detail.nintervention.Text = intervention.getNumero
                form_detail.remarque.Text = intervention.getRemarque
                form_detail.ind.Text = listeintervention.SelectedIndices(0)
     
            End If
            form_detail.ShowDialog()
    après dans le formulaire detail je dois pouvoir modifier les informations de l'intervention sélectionné dans le précédent formulaire. et c'est ici que sa foire car je ne parviens pas à récuperer l'objet intervention

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public class detailintervention
    public intervention as Intervention
        Public Sub description_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles description.TextChanged
            intervention.setDescription(description.Text)
        End Sub

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Pourquoi ne pas utiliser une classe à part avec un attribut statique et qui contiendrait ton Intervention en cours. De cette manière toutes les forms y ont accès, il te suffit simplement de mettre à jour l'objet Intervention en sortant d'un formulaire et de le relire en arrivant sur un autre.
    Cela fonctionnerait un peu comme une variable de session (pour faire un parallèle avec ASP.NET).
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    je ne vois pas dans ton code où tu passes l'objet à l'autre feuille
    du genre form2.intervention = me.intervention
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Invité
    Invité(e)
    Par défaut
    effectivement en faisant simplement , dans mon formulaire de détail :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.intervention = form_intervention.intervention
    et en mettant la variable intervention à Shared dans mon formulaire form_intervention , sa passe , merçi beaucoup.

  7. #7
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 194
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 194
    Par défaut
    shared n'est ptete pas obligé ...
    une variable shared est partagée entre toutes les instances
    si tu as plusieurs fenetre du meme type ouverte, elles auront toutes la meme référence ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [POO] Calendrier et passage d' objet en parametre
    Par julienr dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/11/2007, 22h18
  2. [C#] passage d'objet entre forms
    Par kooljy dans le forum Windows Forms
    Réponses: 4
    Dernier message: 26/04/2006, 06h45
  3. [VBA] Passage objet Form : err 13 incompatibilité de type.
    Par Caroline1 dans le forum Contribuez
    Réponses: 6
    Dernier message: 12/04/2006, 14h39
  4. Réponses: 4
    Dernier message: 02/01/2005, 23h24
  5. [ JSP ][ Débutant ] Passage d'objet par un forward
    Par captainpouet dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 08/04/2004, 10h33

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