Faire un bouton appliquer en Visual Basic 2010

Réponse proposée Faire un bouton appliquer en Visual Basic 2010

  • mercredi 11 juillet 2012 12:54
     
     

    Bonjour,

    Dans un logiciel, j'ai des options, mais si je ferme la fenêtre des options et que je la re-ouvre, tous les paramètres sont perdu!

    Je n'ai aucune idée quel code mettre dans le bouton appliquer, car j'ai commencer le Visual Basic il y a 1 ou 2 mois :|.

    Merci de votre aide,

    Charlélie

Toutes les réponses

  • mercredi 11 juillet 2012 18:01
     
     Réponse proposée
    Bonjour Charlélie,
    Le 11/07/2012 14:54, Charlélie a écrit :
    > Bonjour,
    >
    > Dans un logiciel, j'ai des options, mais si je ferme la fenêtre des
    > options et que je la re-ouvre, tous les paramètres sont perdu!
    >
    > Je n'ai aucune idée quel code mettre dans le bouton appliquer, car j'ai
    > commencer le Visual Basic il y a 1 ou 2 mois :|.
    >
    > Merci de votre aide,
    >
    > Charlélie
    >
     
    Une piste :
     
     

    Cordialement, Jacques
  • jeudi 12 juillet 2012 22:08
     
     
    Ça ne marche pas, mais je continue mes recherches...
  • vendredi 13 juillet 2012 13:50
     
      A du code

    Peut être serait il utile de préciser ce qui ne marche pas.

    Un exemple qui utilise un 'TabControl' et un 'Button' :

    Imports System.Configuration
    
    Public Class Form1
        Private WithEvents MyFormSettings1 As New MyFormSettings
    
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Me.TabControl1.SelectedIndex = MyFormSettings1.LastTab
        End Sub
    
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            MyFormSettings1.LastTab = Me.TabControl1.SelectedIndex
            MyFormSettings1.Save()
        End Sub
    End Class
    
    NotInheritable Class MyFormSettings
        Inherits ApplicationSettingsBase
    
        <UserScopedSettingAttribute()> _
        Public Property LastTab() As Integer
            Get
                Return CInt(Me("LastTab"))
            End Get
            Set(ByVal Value As Integer)
                Me("LastTab") = Value
            End Set
        End Property
    End Class
    

    Si tu cliques sur le bouton, la form s'ouvrira ensuite avec l'onglet qui était actif, sinon, par défaut, sur le premier, ou le dernier sauvegardé.

    Par ailleurs, suivant les paramètres que tu veux conserver, il y a aussi le registre, les .ini, etc. Mais faire attention à ce qui est global, cad tous les utilisateurs et ce qui est spécifique à chaque compte.


    Cordialement, Jacques

  • vendredi 13 juillet 2012 13:56
     
      A du code

    OK je teste ça

    __

    Bon ok là j'ai 5 erreurs, mais il y a aussi que je ne sais pas où mettre:

    NotInheritable Class MyFormSettings
        Inherits ApplicationSettingsBase
    
        <UserScopedSettingAttribute()> _
        Public Property LastTab() As Integer
            Get
                Return CInt(Me("LastTab"))
            End Get
            Set(ByVal Value As Integer)
                Me("LastTab") = Value
            End Set
        End Property

    donc je l'ai mis à la fin.

    Voici les erreur:

    1 et 3'LastTab N'est pas un membre de 'EnregistrementTest.MyFormSettings'.

    2 'Save' n'est pas un membre de 'EnregistrementTest.MyFormSettings'.

    4 Type 'ApplicationSattingsBase' non défini.

    À ça 

    <UserScopedSettingAttribute()> _
    Public Property LastTab() As Integer

    c'est: 5 Instruction non valide dans un espace de noms.

    __

    Là, en plus, je ne plus allez dans le design ça dit:

    Pour éviter tout risque de perte de données avant le chargement du concepteur, les erreurs suivantes doivent être résolues :
    1 erreur
    Pourquoi cette page s'affiche-t-elle ?
    La valeur n'est pas comprise dans la plage attendue.
    Instances de cette erreur (1)
    1. Masquer la pile des appels
    à EnvDTE80.CodeModel2.DotNetNameFromLanguageSpecific(String LanguageName)
    à Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.CodeTypeDeclarationFromCodeClass(CodeClass vsClass)
    à Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomParser.Parse(TextReader codeStream)
    à Microsoft.VisualStudio.Design.Serialization.CodeDom.MergedCodeDomParser.System.CodeDom.Compiler.ICodeParser.Parse(TextReader stream)
    à System.CodeDom.Compiler.CodeDomProvider.Parse(TextReader codeStream)
    à Microsoft.VisualStudio.Shell.Design.Serialization.CodeDom.CodeDomDocDataAdapter.get_CompileUnit()
    à Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
    à System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)

    Aide sur cette erreur

    Aide sur MSDN
    Publications de forum sur cette erreur
    Rechercher sur les forums MSDN les publications relatives à cette erreur



    • Modifié Charlélie vendredi 13 juillet 2012 14:09
    • Modifié Charlélie vendredi 13 juillet 2012 14:15
    •  
  • dimanche 15 juillet 2012 22:24
    Modérateur
     
     Réponse proposée

    Bonjour,

    Pouvez-vous nous confimer que vous êtes en train de modifier les paramètres de votre application (via l'onglet "Paramètres" dans les propriétés du projet).

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte logiciel/Consultant/Formateur Freelance
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5/4.0
    - MCITP : SQL Server 2008 Developper
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5/4.0

    • Proposé comme réponse TroxsaEditor mercredi 18 juillet 2012 09:20
    •  
  • jeudi 19 juillet 2012 13:53
     
     
    Le 13/07/2012 15:56, Charlélie a écrit :
    > OK je teste ça
    >
    > __
    >
    > Bon ok là j'ai 5 erreurs, mais il y a aussi que je ne sais pas où mettre:
    >
    > NotInheritable Class MyFormSettings
    >      Inherits ApplicationSettingsBase
    >
    >      <UserScopedSettingAttribute()> _
    >      Public Property LastTab() As Integer
    >          Get
    >              Return CInt(Me("LastTab"))
    >          End Get
    >          Set(ByVal Value As Integer)
    >              Me("LastTab") = Value
    >          End Set
    >      End Property
    >
    > donc je l'ai mis à la fin.
    >
    OK, à condition d'avoir un 'End Class', mais n'aurais tu pas omis de
    mettre :
       Imports System.Configuration
     
    en tout début de code.
     
    Par ailleurs, j'ai nommé la propriété 'LastTab', mais ce nom est
    arbitraire, tu peux l'appeler 'Toto'. Il suffit ensuite d'utiliser le
    même nom.
     
    Et comme le demande Gilles Tourreau : que veux tu sauvegarder comme
    paramétrage ? Cela peut avoir une certaine importance sur le choix de la
    méthode.
     
    PS : Ta réponse semblant avoir été faite en modification d'un message
    existant, je ne l'ai pas vu passer.
     
     

    Cordialement, Jacques
  • lundi 20 août 2012 14:59
     
     

    Bonjour,

    Désoler de ne pas avoir répondu rapidement.

    Bon là je ne veux pas changer les paramètre de l'app, je veux enregistrer le texte d'une textbox.

    Charlélie

  • lundi 20 août 2012 17:17
    Modérateur
     
     

    Bonjour Charlélie,

    Les paramètres de l'application permettent d'enregistrer des données dans un fichier sur l'ordinateur. Celui-ci sera lu au lancement de l'application.

    Il permet donc d'enregistrer du texte et de l'afficher plus tard à la réouverture du formulaire, c'est ce que vous voulez faire !

    Bien sûr il est possible de stocker différents types de valeurs afin de retenir par exemple les cases (checkbox) cochées.

    Bonne soirée


    N'hésitez pas à poser des questions si un problème subsiste ou quelque chose n'est pas clair. Dans l'autre cas, veuillez indiquer que le problème est résolu. Cordialement - Best Regards. Contact

  • lundi 20 août 2012 23:04
     
     

    Bonjour Michel K,

    C'est exactement ce je veux faire!

    Comment feriez-vous?

    Merci

    • Modifié Charlélie lundi 20 août 2012 23:04
    •  
  • mardi 21 août 2012 01:02
     
     

    Bonjour Charlélie,

    Moi aussi, j'ai galéré au début pour comprendre

    Voici un exemple simple (projet sous VS2010)

    C'est en C# mais dis moi si tu ne comprends pas certaines lignes.

    J'ai rajouté un projet (par défaut) en VB dans la solution


    fred on youTube
    PHP MySQL Web Site Creator
    fred



    • Modifié fred75 mardi 21 août 2012 01:03
    • Modifié fred75 mardi 21 août 2012 01:40
    •  
  • mardi 21 août 2012 02:06
     
     

    Bonjour,

    Je suis désoler mais je n'ai pas Visual C# :|.

    Je n'ai installé que Visual Basic, je n'ai pas Visual Studio au complet.

    Je ne voudrais pas non plus tout convertir mon programme en C# tout de suite.

    Mais c'est quand même ce que j'aimerais faire, mais sur Visual Basic.

    Merci

  • samedi 25 août 2012 20:35
     
      A du code

    Bonjour,

    c'est simplement un exemple afin que tu comprennes le principe.

    Crée un nouveau porjet VB avec un listBox, un Textbox et un bouton et un menu

    voici le code VB:

    Public Class Form1
      Private userSettings As New MyUserSettings()
    
      Private Sub Form1Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TextBox1.Text = userSettings.CheminFichierLocal
        ListBox1.BackColor = userSettings.BackgroundColor
      End Sub
    
      Private Sub Button1Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If (ColorDialog1.ShowDialog() = DialogResult.OK) Then
          ListBox1.BackColor = ColorDialog1.Color
        End If
      End Sub
    
      Private Sub QuitterToolStripMenuItemClick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles QuitterToolStripMenuItem.Click
        userSettings.CheminFichierLocal = TextBox1.Text
        userSettings.BackgroundColor = ListBox1.BackColor
        userSettings.Save()
        Application.Exit()
      End Sub
    End Class

    J'ai transférer ma solution vers un projet VB Express que tu peux trouver ici

    le bouton permet de choisir une couleur de fond pour la listeBox

    La texteBox sert à entrer du texte

    quand on fait Fichier - Quitter, le programme enregistre le contenu de la textbox et de la couleur de fond du ListBox afin de la recharger à la prochaine exécution.


    fred on youTube
    PHP MySQL Web Site Creator
    fred





    • Modifié fred75 samedi 25 août 2012 20:36
    • Modifié fred75 samedi 25 août 2012 20:48
    • Modifié fred75 samedi 25 août 2012 20:48
    • Modifié fred75 samedi 25 août 2012 20:51
    •  
  • mercredi 29 août 2012 23:57
     
     

    Merci,

    mais comment fait-on pour que ça enregistre et que l'on puisse utiliser ce qui a été sauvegarder dans (un ou une) autre "Form" plus tard?

    Merci Beaucoup!



  • jeudi 30 août 2012 12:04
     
      A du code

    Bonjour,

    Pour enregistrer, il suffit de faire un

    userSettings.Save()

    avant de quitter le programme

    et pour utiliser dans une autre form, il suffit d'assigner les paramètres aux controls comme ceci:

    TextBox1.Text = userSettings.CheminFichierLocal ListBox1.BackColor = userSettings.BackgroundColor

    quelque soit la form


    fred on youTube
    PHP MySQL Web Site Creator
    fred