VB.NET Sviluppo Applicazioni Desktop Corrado Cavalli Microsoft .NET MVP [email protected] Applicazioni Windows Form E’ un applicazione che ha almeno un Form Form E’ una classe presente in System.Windows.Forms Application Application.Run Application.DoEvents Application.StartupPath Application.Idle Application.ThreadException I Forms sono classi, e come tali vanno utilizzati Ereditarietà visuale Un form può ereditare da un form preesistente Forms Properties AutoScroll MaximumSize, MinimumSize Opacity TransparencyKey,Region AcceptButton,CancelButton Show,ShowDialog,DialogResult TopMost,CenterParent,CenterScreen Application.EnableVisualStyles I control arrays non esistono più... Forms MDI Form.IsMDIContainer=True Form.MdiParent=Me Form.ActiveMDIChild Form.MDIActivate Menu Form.MenuStart/MenuComplete Menu.Select Menu.OwnerDraw ContextMenu Clipboard E’ una classe con metodi statici Clipboard.xxx Clipboard.SetData(oggetto) IDataObject=ClipBoard.GetDataObject IDataObject.GetDataPresent(format) Enumerato DataFormats Object=ClipBoard.GetData() Va castato con DirectCast() Posso copiare oggetti se la classe è marcata con <Serializable> Drag and Drop E’ un operazione Sincrona Dim eff as DragDropEffects=Controllo.DoDragDrop(Dati,DragDropEffects) Evento DragEnter (AllowDrop=True) IDataObject=e.GetDataObject Present=IDataObject.GetDataPresent(format) If present then e.Effect=DragDropEffects.XXX Evento DragDrop Object=e.Data.GetData(DataFormat.XXX) Va castato con DirectCast() If eff=DataFormats.XXX then ... End If Enumerato DataFormats Proprietà dinamiche e Settings I controlli supportano proprietà dinamiche Vengono memorizzate nel file .config Possiamo inserire i nostri settings System.Configuration.AppSettingsReader No AppSettingsWriter... Application.UserAppDataPath Application.CommonAppDataPath Risorse e Localizzazione Sono informazioni che inseriamo nella nostra assembly Si possono leggere usando Assembly.GetManifestResourceStream Form.Localizable=True Form.Language=... WinRes.exe Al.exe DataBinding Associare un controllo ad una (o più) fonti di informazioni (DataSource) Simple Binding (tutti i controlli, legame Proprietà <> Informazione, un solo item visualizzato) Complex Binding (alcuni controlli, tutti gli items visualizzati) Esempio di Simple Binding... Dim bnd as new Binding(“Text”,DataSource,DataMember) TextBox1.DataBindings.Add(bnd) DataBinding Text DataBindings BindingManager PropertyManager (1) CurrencyManager (n) Fonte Dati Position Current BindingManager gestisce il legame Controlli <-> Fonte Dati PropertyManager (Single item DataSource) CurrencyManager (List data source ) Entrambi ereditano dalla classe astratta BindingManagerBase Position: Posizione attuale nella lista di dati Current: Attuale DataRowItem selezionato Esiste un BindingManager per ogni Fonte Dati interessata a binding I BindingManagers sono accessibili attraverso la proprietà BindingContext del Form Communities news.microsoft.com microsoft.public.it.dotnet.vb microsoft.public.it.dotnet.* Comunità degli sviluppatori http://www.microsoft.com/italy/msdn/community/default.asp Webcasts http://www.microsoft.com/italy/msdn/webcast/default.asp