Francesco Geri

Il blog di Francesco Geri
posts - 94, comments - 165, trackbacks - 2

Visual Inheritance nei controlli Windows Form

Dovendo fare in una stessa applicazione molte form di dialogo per l’immissione o visualizzazione di informazioni ho pensato di creare una form base (scheletro) che fosse impostata con le caratteristiche comuni (font, colore di sfodo) e con i pulsanti ok, applica, annulla. A questo punto tutte le form di dialogo ereditano da questa (invece che da System.Windows.Form.Form) e così si trovano automaticamente i pulsanti e tutto il resto.

Per posizionare i pulsanti ho pensato di usare un TableLayoutPanel in modo che ridimensionando le form ereditate i pulsanti si spostino nel punto giusto.

Però mi sono accorto che, in Visual Studio, dal Form editor il controllo TableLayoutPanel ed i suoi children risultano in sola lettura. Sostituendo il TableLayoutPanel con un Panel posso invece editare i controlli in esso contenuti.

Il problema è che, per poter essere editati nel Form editor, i controlli ereditati devono supportare la Visual Inheritance, ed il TableLayoutPanel non la supporta.

La cosa è documentata in questa pagina: Best Practices for the TableLayoutPanel Control.

Ci sono altri controlli che hanno lo stesso problema, come indicato nell’articolo Walkthrough: Demonstrating Visual Inheritance. In particolare sono:
WebBrowser
ToolStrip
ToolStripPanel
TableLayoutPanel
FlowLayoutPanel
DataGridView

Print | posted on venerdì 8 marzo 2013 11:29 | Filed Under [ Tips .Net Visual Studio ]

Powered by:
Powered By Subtext Powered By ASP.NET