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 :

Modifier les propriétés d'un controle et enregistrer le formulaire


Sujet :

VB.NET

  1. #1
    CRC
    CRC est déconnecté
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut Modifier les propriétés d'un controle et enregistrer le formulaire
    Bonjour à tous,

    Je voudrais savoir s'il est possible de modifier les propriétés d'un controle, par exemple le texte d'une étiquette, puis d'enregistrer ces modifications dans le formulaire en utilisant une procédure développée en vb.net.

    Le but est de modifier et de sauvegarder le libellé ou d'autre propriétés des contrôles modifiés dans le formulaire en fonction du type des utilisateurs.

    Donc, je ne sais pas si on peut ouvrir un formulaire en mode conception, le modifier puis l'enregistrer comme avec le vba et access.

    Merci d'avance pour votre aide.

  2. #2
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par CRC Voir le message
    Bonjour à tous,

    Je voudrais savoir s'il est possible de modifier les propriétés d'un controle, par exemple le texte d'une étiquette, puis d'enregistrer ces modifications dans le formulaire en utilisant une procédure développée en vb.net.

    Le but est de modifier et de sauvegarder le libellé ou d'autre propriétés des contrôles modifiés dans le formulaire en fonction du type des utilisateurs.

    Donc, je ne sais pas si on peut ouvrir un formulaire en mode conception, le modifier puis l'enregistrer comme avec le vba et access.

    Merci d'avance pour votre aide.

    Bonjour,

    Je ne suis pas certain de te suivre car tu utilises des termes plutôt vbA, mais oui on peut modifier le contenu d'un controle, mais toi tu parles de propriétés, on peut certes les modifier aussi, les enregistrer, mai c'est assez rare comme utilisation.

    Par exemple un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    textbox1.texte = "" ' vide
    ' tu peux lui affecter un contenu texte, ainsi :
    textbox1.text = "mon texte..."
    ' tu peux aussi modifier ses propriétés, mais c'est plus rare de faire ainsi :
    dim lgrTxt1 as integer = 25
    textbox1.width = lgttxt1
    Ensuite, si tu veux enregistrer des éléments il faut au plus simple utiliser un fichier texte dans lequel il y aura par exemple :
    25, lgrtxt1
    mon texte..., txt1

    Et ensuite, en rappel tu ouvres ton fichier, tu le lis, chaque ligne, puis tu remonte la ligne, tu cheche la virgule pour séparer le paramètre de l'indication de l'objet, et tu affecte en fonction de ces éléments aux objets.


    Pour le fichier tu peux reposer la question "Comment gérer un fichier texte" car je ne vais pas m'étendre ici, je ne sais pas exactement si c'est ça que tu veux ?

    En plus, ce que tu demandes : manipulation et enregistrement des contenus et propriété d'objet, plus le fichier, il faut déjà avoir l'habitude de faire ça sinon tu va coincer sans cesse.

    Au plaisir.
    .
    Cordialement.

    Joe.
    .
    .

  3. #3
    CRC
    CRC est déconnecté
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Bonjour Joe,

    Non ce n'est pas aussi simple, en fait je modifier et sauvegarder la propriété d'un controle.

    Exemple : un formulaire contient à l'origine un label affichant "MESSAGE 1" et un bouton affichant "FONCTION 1".

    Je veux pouvoir ouvrir le formulaire en mode conception (ou autre ?) à partir d'un autre formulaire, modifier le titre du label en " MESSAGE 2" et le titre du bouton en "FONCTION 2 " puis enregistrer les modifications dans le formulaire.

    A la prochaine ouverture du formulaire, on otient label "MESSAGE 2" et bouton "FONCTION 2".

    Tout cela en doit etre fait en vb.net, mais je n'ai pas vu de méthodes d'ouverture en mode création ou de sauvegarde dans les méthodes de la classe Form.

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tout ceci est inclus dans le .exe
    un .exe n'est pas modifiable par lui même !
    donc il faut externaliser les infos que tu souhaites modifier (fichier, base de données ou autre) et au chargement du form aller lire ces infos pour forcer ces valeurs

    pour faire dans le générique, il faut au moins stocker le nom du form, le nom du controle, le nom de la propriété et la valeur
    ensuite par reflection on peut faire ca avec peu de lignes de code je pense


    si tu as peu de choses à rendre modifiables, tu peux utiliser les paramètres de projet (clic droit sur le projet/propriétés/onglet paramètres)
    mettre des paramètres de type utilisateur, au final ca créé des "variables sauvegardées"
    et donc là aussi à l'ouverture du form, il faut aller lire ses variables pour les mettre dans les propriétés des controles
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut
    Citation Envoyé par CRC Voir le message
    Bonjour Joe,

    Non ce n'est pas aussi simple, en fait je modifier et sauvegarder la propriété d'un controle.

    Exemple : un formulaire contient à l'origine un label affichant "MESSAGE 1" et un bouton affichant "FONCTION 1".

    Je veux pouvoir ouvrir le formulaire en mode conception (ou autre ?) à partir d'un autre formulaire, modifier le titre du label en " MESSAGE 2" et le titre du bouton en "FONCTION 2 " puis enregistrer les modifications dans le formulaire.

    A la prochaine ouverture du formulaire, on otient label "MESSAGE 2" et bouton "FONCTION 2".

    Tout cela en doit etre fait en vb.net, mais je n'ai pas vu de méthodes d'ouverture en mode création ou de sauvegarde dans les méthodes de la classe Form.
    Bonjour, suite,

    Hum, mais pourquoi tu veux enregistrer le texte d'un bouton, le mot qu'il affiche, ça veut dire qu'une option permettra de changer ce nom, mais pour quelle raison changer le nom d'un bouton (certes ça se fait, mais ce sont des cas bien précis que généralement on n'enrigistre pas, genre un bouton qui cliqué affiche "oui" puis re-cliqué affiche "non") ?

    Tu parles bien d'un programme vbNet, qui lance une feuille (nommé form) et nommé formulaire en vbA (je crois) et en HTML ?

    C'est encore plus sophistiqué car il va falloir prévoir des commandes de changement de nom de l'affichage des objets, plus le fichier, je crois que tu ne pourras pas gérer de tels éléments si tu ne l'as jamais fait !

    Si tu as vbnet10 je peux te le faire si je comprends, sinon faut charger le 10 et la framWork 4...
    .
    Cordialement.

    Joe.
    .
    .

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

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    rien de forcément très compliqué ...

    dans certains cas on peut gérer une traduction de cette manière bien qu'il y ait des choses dans le framework pour gérer la globalisation ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    CRC
    CRC est déconnecté
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Bonjour Pol63 et bonjour joe,

    Effectivement, c'est pour pouvoir modifier la langue des boutons, des étiquettes, des groupes d'options et des options qui se trouvent dans tous les formulaires qui composent une solution vb.net.

    J'ai fait un formulaire dédié à la sélection de la langue, puis il y a un balyayage de tous les controles de tous les formulaires afin de modifier la prorpiété .text.

    D'où mon besoin d'avoir un équivalent vba access de :

    - openform xxx, acdesign

    Puis balayage et modification du texte des contrôles du formulaire.

    - puis un équivalent me.close acsave yes

    J'ai déjà fait le prog de balayage des contrôles mais il n'y a pas de sauvegarde des modifications car pas de méthode .save dans la classe Form.

  8. #8
    Inactif
    Homme Profil pro
    Auteur logiciels et romans
    Inscrit en
    Février 2009
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auteur logiciels et romans
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Février 2009
    Messages : 203
    Points : 132
    Points
    132
    Par défaut Réponse à CRCn voici ton code
    Bonjour CRC,

    Voici ton code testé, alors tu fais ce qui suit :
    Avec vb3, 5, 8, ou 10 (vbNet), tu ouvre un nouveau programme, tu ouvrs une form1, puis tu y colles le code sous-cité, puis tu y rajoutes les objets indiqués dans le code, qui de toute façon te seront signalé par le debeger, ensuite tu lances, ça tourne !

    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
     
    ' OBJETS : form1 + button1 + button2 = 3
    Option Explicit On
     
    Public Class Form1
      Dim debut As Integer ' début pour chaque langue
      Dim _t(300) As String ' tableau des langues
      Dim nomFichier As String = "fLangues.txt" ' nom du fichier
      Dim laLangue As String = "" ' f, a ou e (f par défaut)
     
      Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' français ' on peut entrer le code en dur
        _t(1) = "Changer la langue  " ' bouton 1 français
        _t(2) = "lancement programme" ' bouton 2
        _t(3) = "Programme en Français" ' bandeau form1
        _t(4) = "Lancement du programme, et caetera" ' texte msgbox bouton 2
        ' abglais
        _t(101) = "Change the language" ' bouton 1 anglais
        _t(102) = "Call the program   " ' bouton 2
        _t(103) = "Program in English" ' bandeau form1
        _t(104) = "Call of program, et caetera" ' texte msgbox bouton 2
        ' espagnol
        _t(201) = "Changia la lingua  " ' bouton 1 espagnol
        _t(202) = "Appela el progrmmo " ' bouton 2
        _t(203) = "Programo espagnola" ' bandeau form1
        _t(204) = "Appelo los programo, et caetera" ' texte msgbox bouton 2
        Call litLangue()
        Call afficheLangue()
      End Sub
     
      Sub litLangue()
        Try ' le fichier par défaut = répertoire application \ bin \ debug (qui sera compilé = répertoire de l'exe)
          ' existant = lecture
          Dim p As New System.IO.StreamReader(CStr(My.Application.Info.DirectoryPath & "\" & nomFichier))
          laLangue = p.ReadLine() ' lit ligne 1
          p.Close() ' ferme
        Catch ex As Exception ' si erreur ferme (après dim p ...) = inexistant = création
          laLangue = "f" ' français par défaut à la création
          Call ecritLangue()
        End Try
      End Sub
     
      Sub ecritLangue()
        Dim p As New System.IO.StreamWriter(CStr(My.Application.Info.DirectoryPath & "\" & nomFichier))
        p.WriteLine(laLangue) ' écrit
        p.Close() ' ferme
      End Sub
     
      Sub afficheLangue()
        Select Case laLangue ' selon la langue
          Case "f" : debut = 1   ' fr
          Case "a" : debut = 101 ' ang
          Case "e" : debut = 201 ' esp
        End Select
        Button1.Text = _t(debut + 0)
        Button2.Text = _t(debut + 1)
        Me.Text = _t(debut + 2)
      End Sub
     
      Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim la As String ' changement de la langue
        la = InputBox("Choisir la langue" & vbLf & "f = fr" & vbLf & "a = ang" & vbLf & "e = esp")
        If Len(la) <> 1 Then Exit Sub ' abandon, erreur...
        If la = "f" Or la = "a" Or la = "e" Then
          If la = laLangue Then Exit Sub ' langue déjà affichée
          laLangue = la
          Call ecritLangue()
          Call afficheLangue()
        End If
      End Sub
     
      Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        MsgBox(_t(debut + 3), vbInformation)
      End Sub
     
    End Class
    je n'ai pas cherché à optimiser le code à outrance, on verra ensuite si besoin, et si jamais ce n'était pas ce que tu voulais, ben vois mon profil et écris moi en m'envoyant ton code (profites-en pour télécharger et installer vbnet10 express et la framWork4), ainsi nous aurons le même et plus récent éditeur et code.

    Par contre s'il faut faire des branchement vbA ou Access, là je ne sais pas.

    Au plaisir.
    .
    Cordialement.

    Joe.
    .
    .

  9. #9
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Citation Envoyé par CRC Voir le message
    Effectivement, c'est pour pouvoir modifier la langue des boutons, des étiquettes, des groupes d'options et des options qui se trouvent dans tous les formulaires qui composent une solution vb.net.

    J'ai fait un formulaire dédié à la sélection de la langue, puis il y a un balyayage de tous les controles de tous les formulaires afin de modifier la prorpiété .text.
    Pas besoin de trucs cracras pour faire ca, gérer l'internationalisation correctement avec les ressources fonctionne parfaitement!

    http://msdn.microsoft.com/en-us/library/aa719955.aspx

  10. #10
    CRC
    CRC est déconnecté
    Membre à l'essai
    Inscrit en
    Avril 2005
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 18
    Points : 13
    Points
    13
    Par défaut
    Joe et Nathanael,

    Merci pour vos réponses, en ce moment je suis sur une autre tâche urgente mais dès que j'ai un moment, je passe en revue vos propositions et je vous tiens au courant.

    A+

Discussions similaires

  1. [WD-2007] Modifier les propriétés d'un ensemble de controle
    Par ronibalbo dans le forum VBA Word
    Réponses: 2
    Dernier message: 18/09/2014, 16h44
  2. Réponses: 2
    Dernier message: 17/02/2008, 20h33
  3. [VBA-E] Modifier les propriétés d'un control par une routine
    Par formath dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2007, 10h45
  4. Réponses: 3
    Dernier message: 11/01/2006, 12h01
  5. Modifier les propriétés d'un fichier
    Par manu1407 dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 09/11/2005, 10h39

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