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
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- Proposé comme réponse Patrice ScribeMVP, Moderator jeudi 12 juillet 2012 10:49
-
jeudi 12 juillet 2012 22:08Ça ne marche pas, mais je continue mes recherches...
-
vendredi 13 juillet 2012 13:50
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 ClassSi 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
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 Propertydonc 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 Integerc'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
-
dimanche 15 juillet 2012 22:24Modérateur
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:53Le 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 demettre :Imports System.Configurationen tout début de code.Par ailleurs, j'ai nommé la propriété 'LastTab', mais ce nom estarbitraire, tu peux l'appeler 'Toto'. Il suffit ensuite d'utiliser lemême nom.Et comme le demande Gilles Tourreau : que veux tu sauvegarder commeparamétrage ? Cela peut avoir une certaine importance sur le choix de laméthode.PS : Ta réponse semblant avoir été faite en modification d'un messageexistant, 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:17Modé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
-
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
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 ClassJ'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
-
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
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

