Press "Enter" to skip to content

Tag: Csharp

Come Usare due diverse liste per pilotare un singolo dettaglio

Questo esempio è stato creato in risposta ad un thread sul forum Microsoft che riguardava Un problema sull’assegnare il focus su una maschera con due liste in realtà il problema non è il focus sulle Liste, ma un problema un po’ più “tricky” più complicato e legato alla gestione del databinding.

Questo esempio mostra come aggirare questo tipo di problema, ma poi mostro anche come approccerei in modo diverso l’interfaccia per evitare il problema, vediamo intanto cosa abbiamo creato e come funziona e poi discuteremo una possibile alternativa allo scenario.

mainwindow_01

Da quanto indicato da chi ha posto il quesito sul forum, la sua interfaccia per la messaggistica interna all’azienda ha una finestra con due liste, messaggi IN e messaggi OUT, al click di un messaggio, il suo contenuto viene visualizzato nella parte di dettaglio.  Il problema segnalato è che quando l’utente passa da una lista all’altra il messaggio selezionato non cambia sempre e quindi l’utente non comprende cosa sta guardando.

Vediamo come abbiamo implementato la parte XAML.

Comments closed

Convertire un foglio di Excel in JSON

Nel precedente post, abbiamo visto come convertire un foglio di Excel in XML, ma considerato che il formato JSON sta diventando lo standard per lo scambio di dati, soprattutto quando si parla di servizi Web, e di applicazioni di ogni genere e tipo, credo sia una cosa buona vedere come svolgere lo stesso tipo di conversione creando un file JSON. Per farlo, oltre ad utilizzare la libreria open source EPPlus, la trovate all’inidirizzo:  epplus.codeplex.com per leggere i dati dal foglio di Excel, utilizzeremo JSON.Net ovvero la libreria Newtonsoft Json che è divenuta ormai lo standard utilizzato da tutte le applicazioni .net per creare il file in formato JSON.

Anche in questo caso, l’esempio vuole illustrare come convertire un file in formato generico, senza dover per forza creare una classe .Net in cui memorizzare i dati della tabella Excel per poi convertirla. Serve per le conversioni Una-Tantum o quando vi venissero inviati dati generici che magari devono divenire una Tabella di dati di configurazione per una applicazione che non avrà bisogno di essere riconvertita in seguito.

Vediamo anche in questo caso l’applicazione WPF, che con eccessiva fantasia stavolta ho chiamato FromExcelToJson.

mainwindow_01

Comments closed

Convertire un foglio di Excel in XML

Un collega mi ha chiesto un suggerimento su come fare un programma per leggere dati da un foglio di Excel e convertirli in un file XML, considerato che è qualcosa che potrebbe accadere anche spesso, visto che soprattutto i non informatici hanno una propensione per utilizzare i fogli di Excel come database. O come formato standard di scambio dati, ho deciso di fare un esempio che mostra come utilizzare la libreria Open Source EPPlus, la trovate all’inidirizzo:  epplus.codeplex.com per leggere un file di Excel e scrivere un documento XML senza utilizzare per questo una specifica classe.

Perché questo esempio? perché è semplice da utilizzare per ricevere dati di tipo One Shot ovvero ci arriveranno una sola volta, quindi non vale la pena di costruire una classe entity e una collection per leggere una sola volta un foglio di Excel.

Vediamo come è fatta l’applicazione, si tratta di una applicazione WPF che ho chiamato con molta fantasia FromExcelToXml che contiene una sola Window, MainWindow:

MainWindow_01

Comments closed

Stampare i dati contenuti in una DataTable

In risposta ad una domanda sul forum Microsoft da parte di un utente principiante che voleva stampare dei dati da una applicazione Windows Forms,  Il thread lo trovate a questo indirizzo, ho implementato una mini funzione di stampa dei dati letti dal programma scritto per il post Come eseguire una query filtrata su SQL Server alla modifica del testo su una textbox dove potete leggere la costruzione della form.

Oggi ho semplicemente aggiunto un il Button btnPrint in fondo alla form ed il suo event handler Andiamo a vedere cosa ho implementato.

mainform_01

Comments closed

Come eseguire una query filtrata su SQL Server alla modifica del testo su una textbox

Un esempio creato in risposta ad una domanda sui forum Microsoft  Il thread lo trovate qui dove un utente chiedeva quale sia il modo per passare la stringa di una textbox ad una query SQL per effettuare il filtraggio sui dati inseriti dall’utente.

L’applicazione che ho creato è molto semplice. Anche se vi ho inserito un trucco da programmatore esperto.

form1_01

Comments closed

Generare Dinamicamente Controlli da codice

Si tratta di un esempio in risposta ad una richiesta sul forum Microsoft,  Questo è il link al thread in cui un principiante ha dapprima postato un problema e una volta risolto il problema contingente, ha spiegato che vorrebbe realizzare un programma per fare quiz in cui inserire i quiz su dei file di testo e da questi creare al volo i controlli sulla form per fare le domande.

La mia risposta è stata che non si tratta della soluzione migliore, quella di creare tutti i controlli al volo, e in questo articolo vediamo un esempio di come si fa e perché non la considero la soluzione più usabile per creare una applicazione.

In seguito posterò un esempio di come risolverei la cosa in modo meno complicato.

Comments closed

Come acquisire data e ora su due controlli diversi memorizzandola sullo stesso campo

Qualche giorno fa sul forum WPF di Microsoft Italia, è stata fatta una domanda da parte di uno sviluppatore che aveva la necessità di acquisire sia una data che un ora e voleva farlo su due controlli distinti.

I controlli standard WPF comprendono solo il controllo DateTime, che non permette di avere dei formati che diano modo di acquisire solo la data o solo l’ora.

E’ abbastanza primitivo da essere adatto solo a permettere l’acquisizizone utilizzando il calendario. Una acquisizione piuttosto lenta e priva del valore dell’ora.

Comments closed

Aggiungere un immagine di sfondo ad una TreeView WPF

Oggi, sul forum Microsoft un utente ha rivolto la seguente domanda:

Dovrei mettere un’immagine di sfondo alla mia treeview, il problema è che la proprietà non esiste Qui trovate il link al thread.

La mia risposta è stata la seguente:

Il controllo TreeView WPF non possiede una property BackgroundImage, ma è piuttosto semplice aggiungere un immagine di sfondo, inserendo un controllo Image nello stesso contenitore della TreeView nell’esempio qui pubblicato mostro uno dei metodi con cui si può fare.

Comments closed

Common Libraries – Due metodi helper per la crittografia AES

In risposta a Questo thread postato oggi sul forum Microsoft C# in cui un utente vuole implementare una chat crittografata utilizzando il metodo AES e ha trovato delle difficoltà.

Rispondo pubblicando un esempio di codice con i metodi che utilizzo io per questo tipo di crittografia.

Comments closed

Come passare un dato da una form ad un altra e aggiornare un valore a video nella form ricevente

In risposta ad una domanda fatta sul Form Microsoft C# (dove invito chiunque visiti il mio sito a porre quesiti per avere risposte) posto un piccolo esempio che mostra come creare una form da una esistente e aggiornare un valore in modo temporizzato.

Il thread originale sul forum non riguarda direttamente l’aggiornamento dei dati fra form, ma la prima risposta a cui questo esempio fa seguito, riguarda la correzione degli errori primari nel codice, poi, parleremo di multithreading e magari posterò un esempio in quel senso.

Il problema

Il programma in questione ha una form principale che permette una serie di attività, ed ha una form secondaria che deve visualizzare in modo temporizzato i valori derivati da una lettura sulla porta seriale. Il codice originale scritto da chi ha posto la domanda aveva un errore fondamentale, ovvero creava una form nuova ogni volta che doveva aggiornare il valore letto dalla seriale.

Vi invito a non fare smorfie dicendo “Ma come, è una cosa banale dai!” perché tutti da principianti siamo passati da questo problema, e chiunque neghi è un bugiardo patentato, anche io ho avuto questo problema, nel lontano 2003 quando ho scritto la mia prima applicazione con le form e sono la prima ad alzare la mano per indicare che sfortunatamente, le cose banali sono quelle che ti bloccano come muri, diventano davvero banali solo dopo che qualcuno ti ha spiegato come fare.

Comments closed