Blog Stats
  • Posts - 7
  • Articles - 0
  • Comments - 138
  • Trackbacks - 0

 

Il setting mancato

 In Visual Studio  2005  è immediato gestire le impostazioni della propria applicazione. Infatti il designer offre la possibilità di impostare un binding (mediante la sezione application settings dell'editor di proprietà ) fra le proprietà dei componenti e il file di impostazioni dalla propria applicazione.  Non voglio spiegare come funziona il tutto (è ampiamente spiegato nell'help) ma voglio esporre un piccolo problema in cui mi sono imbattuto.

Utilizzando il nuovo e colorato ToolStripMenuItem, è possibile creare dei menù con a lato il segno di spunta. Supponiamo di voler memorizzare nel file lo stato del ToolStripMenuItem. In un primo momento, preso da pigrizia, utilizzo il property editor, e collego la proprietà "CheckState" ad un campo del mio file di impostazione. Scrivo il codice per salvare il tutto nell'evento formclosing, compilo la mia applicazione e la provo.  Non ottengo l'effetto sperato, ad ogni avvio della mia applicazione lo stato del ToolStripMenuItem è quello di default. Perchè?

Andiamo a vedere il codice che genera Visual Studio :

this.tsmTest.CheckState = global::TestProperties.Properties.Settings.Default.testTsm;

Lo confronto con il codice generato per un CheckBox

 

this.chkTest.DataBindings.Add(new System.Windows.Forms.Binding("Checked", global::TestProperties.Properties.Settings.Default, "test1", true, System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));

 

 

La causa del problema è chiara, cioè il valore “Checked” del toolStripMenuItem tsmTest, non viene messo in binding, ma viene smplicemente impostato con il valore memorizzato nel file di impostazioni. Un rapida ricerca in MSDN ed è spiegato il perché:

mentre il CheckBox, deriva da Control, che implementa l’interfaccia IBindableComponent , il toolStripMenuItem  non deriva da Control  (deriva da Component àToolStripMenu) e cosa ben più importante non implementa l’interfaccia  IBindableComponent: pertanto non è possibile impostare un binding su di esso.

 

Quindi devo gestirmi manualmente  il salvataggio dello stato del mio ToolStripMenu , scrivendo ad esempio il seguente codice nell’evento formclosing

 

  Properties.Settings.Default.testTsm = tsmTest.CheckState;

  Properties.Settings.Default.Save(); //salvo le impostazioni

 

 

Bisogna anche prestare attenzione al fatto che per il ToolStripMenuItem, non essendo messo realmente in binding,  gli eventi legati alle impostazioni (SettingChanging, SettingsSaving…) non vengono generati. Con riferimento all’esempio di prima, ogni volta che cambio il “CheckState” del mio toolstripmenuitem  l’evento SettingChanging non viene generato.

 


Feedback

# lancel

Gravatar Le propriétaire du <h1>Lancel</h1> magasin de détail en ligne devraient s'efforcer en permanence l'inventaire à jour et des changements de lancel bb bardot prix tandis que les du distributeur en gros sont cotées sur les pages de vente du détaillant en ligne de. sacs à main en gros lancel brigitte bardot avec des noms concepteur d'un distributeur en gros qui fournit un détaillant avec un sac lancel replica accès rapide données d'inventaire à la volonté de s'assurer des ventes et des clients satisfaits en douceur à un magasin de vêtements bien géré en ligne. La clientèle qui achète des <h2>sac lancel pas cher</h2> de concepteur sont les clients avertis. Ils savent ce qu'ils veulent, et ils attendent de vous le livrer à temps. Trouver des
<h2>sac lancel</h2> distributeurs en gros qui portent des sacs à main en gros de la qualité de concepteur qui offre le temps et vente privée lancel octobre 2011 est fiable avec leur inventaire déclaré vous aidera à satisfaire ces clients avertis. Économies sur les gros sacs à main à partir de Premier Flirt Classic en gros pendant que vous construisez votre base clients rentables retour garder vos clients heureux avec leurs produits design, et vous maintiendra heureux avec les profits jolie. sacs lancel pas cher Si vous connaissez rien au sujet des sacs à main mode, vous êtes sûr d'être familier avec la maison de conception en Amérique de sac lancel brigitte bardot de luxe, Lancel.L'entraîneur est un grand nom dans les sacs à main de luxe que nous serions fous de ne pas inclure sac Lancel BB à main Lancel réplique dans notre gamme exclusive de sacs à main réplique.Fondée en 1941 dans un petit loft de New York, la seule marque a <h2>sacoche lancel</h2> acquis officiellement son nom de «Lancel» dans les années 1960.



http://www.solde-sac.com/






01/12/2011 12:57 | lancel

Comments have been closed on this topic.
 

 

Copyright © Giuseppe Merlino