Press "Enter" to skip to content

Tag: Csharp

2 – Multi Clock – Miglioriamo la User interface

In questo secondo articolo dedicato all’orologio multi fuso orario che abbiamo costruito nel precedente articolo, vogliamo migliorare la qualità del comportamento della nostra User Interface. Se avete provato la versione 1.0 del nostro orologio avrete notato 2 problemi che erano presenti nella gestione della configurazione degli orologi, se non lo aveste fatto, i problemi sono i seguenti:

  • Annullando le modifiche effettuate in configurazione, chiudendo senza salvare, sembrava che tali modifiche non fossero state applicate, ma alla chiusura e riapertura dell’applicazione invece le modifiche annullate venivano comunque applicate e gli orologi modificati.
  • Chiudendo la finestra senza salvare, il sistema non chiedeva alcuna conferma prima di annullare le modifiche.

Il motivo di questi due problemi, ovviamente correlati è il seguente:

  1. La modifica alla configurazione nella versione 1.0 viene effettuata direttamente sui dati attualmente in uso.
  2. A causa di questo, visto che alla chiusura della finestra principale i dati di configurazione vengono comunque automaticamente aggiornati per salvare le dimensioni della finestra, anche le modifiche annullate vengono salvate.
  3. Modificando direttamente i dati attuali di configurazione, non c’era modo di sapere se al momento della chiusura della finestra c’erano state variazioni quindi non era possibile notificare l’utente.

Vediamo quindi come ovviare ai problemi e rendere il nostro orologio un po’ più professionale.

Comments closed

Come interagire con una picturebox creata a runtime al passaggio o al click del mouse

In risposta ad un thread sul forum italiano di sviluppo desktop, in cui come da titolo un principiante chiedeva come poter interagire con delle picturebox generate a runtime, ho creato un programmino che dimostra come intercettare gli eventi Mouse Click e Mouse Hover sui controlli picturebox generati a runtime. Nella…

Comments closed

Come Mostrare su una Textbox un valore legato al valore di una combobox

Una domanda sul forum microsoft, da parte di un principiante che potete trovare qui, richiedeva come fare, dopo aver caricato i dati di una tabella su una ComboBox che ne mostra una colonna, a mostrare il contenuto di un altra colonna su una TextBox in base a cosa fosse selezionato sulla ComboBox .

Essendo un operazione che si fa spesso, nella programmazione Windows Forms, ho fatto un piccolo esempio vacanziero per mostrare come si fa.

wimdow_01

wimdow_02

Comments closed

Creare una Dll .Net utilizzabile dal VBA di Excel

Un post in risposta ad un quesito posto sul Forum Microsoft in cui un Temerario che ha la necessità di utilizzare delle funzioni .Net da dentro Excel chiedeva come mai non riusciva a vedere una libreria .Net da dentro a Excel.

Credo che l’ultima volta che ho usato questa cosa sia stato il 2005, poi, per mia fortuna ho potuto evitare l’interoperabilità, anche perché sono sempre maggiori i paletti inseriti all’interno degli strumenti office per paura della creazione di virus che possano danneggiare i computer.

Ad ogni modo, ho creato una libreria esempio, seguendo quanto esposto da chi ha fatto la domanda e ho verificato tutti gli step necessari a poterla utilizzare dentro al VBA di Excel.

solution_01

Comments closed

Come creare un applicazione WPF che rimane in esecuzione mostrando icona e menu in Tray Area

A seguito di una richiesta effettuata sul forum italiano Microsoft, esattamente Questo Thread ho deciso che oltre all’articolo che mostra come usare la Notify Icon di Windows forms per mostrare la sua icona nella Tray Area di scrivere anche lo stesso progetto per WPF, pertanto sono andata a cercare il componente corrispondente nel framework WPF. Sfortunatamente, come per altri controlli, non esiste un controllo standard del framework che permetta di fare tutto ciò. La soluzione più semplicemente suggerita è quella di utilizzare il controllo Windows Forms oppure un controllo di terze parti.

Se volete utilizzare un controllo avanazato scritto da un “code addict” e disponibile gratuitamente, ecco il link al blog di Philipp Sumi dove potete trovare il controllo WPF Notify Icon, e se mi scappa magari farò un post utilizzandolo.

Io invece, faccio l’esempio da pigrizia totale e utilizzerò il controllo Windows Forms, anche perché serve a dimostrare l’interoperabilità fra Windows Forms e WPF.

solution_01

Comments closed

Come creare un applicazione Windows forms che rimane in esecuzione mostrando icona e menu in Tray Area

A seguito di una richiesta effettuata sul forum italiano Microsoft, esattamente Questo Thread ho deciso di scrivere un piccolo progetto che dimostra come utilizzare la Notify Icon di Windows Forms per creare un applicazione che non si chiude quando chiudiamo la sua finestra principale ma rimane in esecuzione in Tray Area dove ha un menu contestuale per richiamare la finestra o fare altri tipi di  operazione.

solution_01

Comments closed

WPF Utilizzare una ListView in modo Classico o in Binding con MVVM

Un post che deriva da un thread su Stack Overflow in cui un principiante non riusciva a capire come recuperare il selected item di una ListView intercettando gli eventi. Dal codice esempio che ha mostrato, stava utilizzando l’interfaccia WPF nella stessa modalità in cui avrebbe fatto in una applicazione Windows Forms, cosa che è fattibile e funziona perfettamente, ma è un po come utilizzare un trattore da 500 cavalli per arare le aiuole del nostro orto condominiale.

Pertanto, ho deciso di creare questo esempio che mostra come utilizzare WPF come eravamo abituati a fare con le windows forms, e quindi creare una applicazione event driven, e come utilizzare invece WPF nel modo corretto e quindi creare una applicazione Data Driven, dove tutto quello che è la forma e il design della parte grafica è indipendente dalla gestione dei dati.

mainwindow_01

Comments closed

Stampare da una applicazione WPF

Ho pubblicato un post qualche giorno fa, in risposta ad una domanda sul Forum Microsoft dedicato a C# per mostrare come si può creare un report utilizzando Windows Forms e quel che ci mette a disposizione per le stampe.

Considerato che io lavoro in WPF, e che WPF è un sistema per scrivere programmi desktop molto più efficiente, potente ed interessante delle Windows Forms, credo sia opportuno mostrare quali sono gli strumenti che abbiamo a disposizione per effettuare delle stampe da WPF.

Per fare questo, ho creato una piccola applicazione simile a quella usata per windows forms, questa applicazione carica il contenuto della tabella Customers del database storico Northwind su una Datagrid, e ci mette a disposizione 3 buttons che mostrano i 3 metodi principali per stampare da WPF.

mainwindow_01

Comments closed

Creare, attivare, disattivare controlli a runtime

In risposta ad una domanda posta su Stack overflow  dove un utente chiedeva come creare dei controlli a runtime che simulino una ShowDialog, visto che mi sembrava una richiesta interessante a cui rispondere ho creato un piccolo esempio che effettua esattamente questo. Vediamo come ho fatto.

mainwindow_01

La main window simula un programma con varie funzionalità sulla finestra principale. Lo spazio vuoto è destinato ad accogliere gli user control generati a runtime. Le textbox ed i bottoni sulla sinistra non hanno alcuna funzionalità, mentre i tre bottoni in basso creano i controlli “showdialog”.

Comments closed

Convertire un file XML o JSON in un foglio di Excel

Visto che ho postato come fare il contrario, e visto che la documentazione su EpPlus è davvero scarsa, ho deciso di postare anche l’esempio contrario, ovvero come generare un foglio di Excel elaborando una collection che abbiamo recuperato leggendo un file XML oppure un file JSON. Ovviamente mi limiterò alle basi, ma EpPlus è in grado di aiutarci a produrre dei fogli excel anche molto complessi e contenenti non solo semplici dati tabellari ma grafici, pivot e molto altro.

Ho pubblicato qualche post fa un esempio d’uso degli oggetti di stampa di .Net per windows forms, ma normalmente, gli output dei miei programmi sono più spesso dei fogli di Excel, principalmente perché lavorando su progetti che riguardano l’analisi e la trasformazione di dati grezzi in dati di qualità, quello che io produco solitamente viene ulteriormente elaborato da chi riceve gli output. E’ comunque buona cosa per chiunque faccia programmi per il mondo delle aziende pensare di inserire in modo standard la possibilità di effettuare un output dei dati che elaboriamo su un foglio di Excel.

mainwindow_01

Comments closed