PropertyGrid

martedì 28 ottobre 2008 - 16.04

defelix Profilo | Newbie

Salve a tutti,
in ambiente vb.net framework 3 ho inserito una property grid in un form per poter configurare le impostazioni con scope USER.

Ecco il codice nell'evento LOAD del form
PropertyGrid1.SelectedObject = My.Settings
' Attribute for the user-scope settings.
Dim userAttr As New System.Configuration.UserScopedSettingAttribute
Dim attrs As New System.ComponentModel.AttributeCollection(userAttr)
PropertyGrid1.BrowsableAttributes = attrs

vorrei inserire la descrizione di ogni voce impostazione nella parte sottostante la grid, ma non riesco a capire come, qualcuno mi può aiutare?
grazie
defelix

freeteo Profilo | Guru

ciao,
devi lavorare con gli attributi per decorare le proprietà della classe, in particolare, quello che ti serve è l'attributo "Description".
Perciò nella definizione della classe (che poi aggancerai alla PropertyGrid tramite "SelectedObject") devi avere un codice di questo tipo:

class TuaClasse { private string descrizione; [Description("Questa proprieta serve per")] public string Descrizione { get { return descrizione; } set { descrizione = value; } } ...
ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo

defelix Profilo | Newbie

grazie per la risposta.
In effetti la classe che sto agganciando con selectobject è my.settings nella quale, tra l'altro, ho già inserito la proprietà description per ogni variabile impostata tramite la grid del form Impostazioni(settings) di My projects.
Come faccio a dire alla property grid di leggere la descrizione di ogni variabile settings?
grazie
defelix

freeteo Profilo | Guru

Ciao,
quelle proprietà sono gestite in maniera visuale da Visual Studio, ma poi sono salvate dentro al file "Settings.Designer.cs" (per un progetto C#) e lo trovi nella cartella "Properties" nel solution explorer.

Dentro quel file, viene scritto il codice per gestire le proprietà, e quindi di fatto è possibile applicare quell'attributo che ti dicevo, anche in quelle proprietà, aggiungendolo sotto agli altri che vedi (ps:l'attributo "description" è del namespace System.ComponentModel).
L'unica cosa è che devi stare attento se le modifichi dentro al designer, poi visual studio lo riscrive e potrebbe toglierti il codice che hai messo tu.

Vedi se riesci a fare una versione che non devi modificare dei Settings, e dovresti riuscire...
ciao.

Matteo Raumer
[MVP Visual C#]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5