4 votes

Sauvegarde de la disposition de la vue de la grille de données (largeur, ordre) dans Visual Studio

J'ai quelques grilles de données et je veux que l'utilisateur puisse conserver les modifications qu'il y apporte. Pas les changements de données, seulement les changements de mise en page, comme la largeur, la hauteur, l'ordre des colonnes et peut-être la visibilité de celles-ci. Je ne me soucie pas de savoir si ce sera automatique ou en cliquant sur un bouton...

J'ai ajouté le fichier de paramètres, mais je n'ai aucune idée de la façon dont je suis censé ajouter l'ordre des colonnes ou la taille des colonnes dans ces paramètres.

0 votes

Est-ce pour WinForms ou WebForms ?

0 votes

Application Windows Form

1voto

Matt Points 2318

Le type d'informations de formatage que vous souhaitez enregistrer se trouve dans les différentes propriétés de la vue DataGridGiew. Il se peut que vous deviez passer un peu de temps avec ses propriétés documentation sur le modèle d'objet mais vous devriez pouvoir trouver l'essentiel de ce que vous cherchez.

Par exemple, pour sauvegarder la façon dont les lignes ont été triées, vous pouvez conserver ces deux propriétés :

DataGridView.SortedColumn vous indique sur quelles valeurs de colonnes les lignes ont été triées. DataGridView.SortOrder indique l'ordre (croissant ou décroissant)

Vous devriez pouvoir trouver des informations sur la largeur et l'ordre des colonnes dans les membres de la base de données DataGridView.Columns collection.

Je pense que c'est une question de préférence que d'enregistrer ces valeurs en une seule fois (par exemple en cliquant sur un bouton "enregistrer les paramètres") ou une par une dans des gestionnaires d'événements au fur et à mesure que les propriétés sont modifiées. J'aime les enregistrer automatiquement lorsque le formulaire est fermé sans aucune action de la part de l'utilisateur. Cela fait un moment que je n'ai rien mis en œuvre de tel, mais je me souviens que les paramètres de l'application étaient un endroit assez pratique pour conserver ce genre d'informations. Dans le concepteur de paramètres des propriétés du projet, il suffit de définir les paramètres pour les éléments que vous souhaitez conserver (assurez-vous de définir l'étendue sur "utilisateur"). Ensuite, assignez et chargez les valeurs réelles dans votre code au moment de l'exécution, comme suit :

// e.g. you defined an integer user setting at design time called ColA_Width, to
// hold the value of the width of "ColA" in your DataGridView.

// Use this code to save the value (either in a specific event handler, or a 
// global "save settings" routine).
Properties.Settings.Default.ColA_Width = MyDataGridViewInstance.Columns["ColA"].Width;
Properties.SEttings.Default.Save();

// Then you'd reverse the assignments when the app next loads so that the saved 
// settings are "remembered" between user sessions.
MyDataGridViewInstance.Columns["ColA"].Width = Properties.Settings.Default.ColA_Width;

Les seules mises en garde dont je me souvienne sont que certaines valeurs des propriétés DataGridView ne sont pas faciles à enregistrer sous forme de chaînes de caractères (rappelez-vous que vos paramètres utilisateur sont finalement enregistrés sous forme de XML), mais cela dépend vraiment du type de paramètres que vous enregistrez.

0voto

Dustin Laine Points 22815

Je suppose que vous voulez parler de l'utilisateur final. Si c'est le cas, je stockerai ces informations dans un cookie ou une base de données et les extrairai au chargement pour personnaliser leur expérience.

0voto

JMP Points 4276

Dans chacun de vos gestionnaires d'événements pour le redimensionnement/triage, vous pourriez avoir une fonction d'aide qui écrive les instructions de mise en page sur un support de stockage comme une base de données, un registre, un fichier xml, une configuration, etc... et qui lise ces instructions pour dessiner l'interface lors du chargement de l'application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X