lunedì 25 maggio 2026

C# Window forms, inviare dati tra le varie form con .NET 10

Si riporta l'articolo scritto per il sito https://www.iprogrammatori.it/articoli/microsoft-net-framework/csharp-window-forms-inviare-dati-varie-form-dotnet-10


In questo articolo vedremo come in un progetto di tipo Windows forms, con il linguaggio di programmazione C# e l’ultima versione del Framework .NET, che è la 10, come trasferire i dati da una form ad altre.
In particolare vedremo come dalla form1, possiamo passare alcuni  valori alle Form2 e Form3.
Questa tecnica può capitare quando si devono gestire dati tra le varie maschere, senza dover eseguire operazioni sul database o nel caso che sono valori di calcolo o di riferimento (come l’id per una richiesta di select su un database).


Creazione del progetto

Si crea un nuovo progetto di tipo Windows Forms, in particolare selezionando come progetto quello denominato “App Windows Forms”, impostando il nome del progetto e selezionando l’ultima versione del Framework, nel momento in cui è pubblicato l’articolo la versione è la 10.
Una volta creato il progetto, non resta che aggiungere due nuove form, in modo da passare i dati.
Facciamo click con il tasto destro sul nome del progetto nella finestra “Esplora soluzioni”,  nel menu che viene visualizzato, selezioniamo la voce “Aggiungi” e nel sotto menu facciamo click sulla voce “Form (Windows Forms)”, nella finestra che viene aperta conferiamo con il pulsante “Aggiungi” il nome della form proposto (“form2”). Ripetiamo la stessa procedura per aggiungere un’altra form, questa volta il nome sarà tipo “form3”.
Aggiungiamo per ogni form aggiunta un controllo di tipo “Label”, in questo controllo sarà visualizzato il valore che passeremo.
Aggiungiamo in una form principale, che di norma viene dichiarata con il nome “Form1”, con la quale viene eseguita all’avvio dell’applicativo, un controllo di tipo “Button”, con il quale passeremo i valori alle due form aggiunte in precedenza.
Il pulsante avrà la proprietà “Text” impostata con il valore “Invia”, e la proprietà “Name”, con il valore “BtnInvia”. 
Aggiungiamo un controllo textbox, con il quale scriviamo il testo che dovrà essere inviato alle altre form, la proprietà “Name” di questo controllo sarà “TxtTesto”.

Stesura del codice

Terminata la creazione del progetto, non resta che scrivere il codice per gestire il passaggio dei valori tra una form e l’altra.
Passiamo in visualizzazione codice, e sotto alla dichiarazione di classe della form, aggiungiamo un evento personalizzato, con il quale passeremo i valori alle varie form.
Di seguito si riporta la dichiarazione dell’evento OnDatiInviare, che riguarda la possibilità di inviare i dati alle altre form.


C#

public partial class Form1 : Form

{

 

    public event Action<string> OnDatiInviare;

 

Passiamo in visualizzazione grafica e facciamo doppio click sul controllo del pulsante, in modo da passare in visualizzazione codice dell’evento click del pulsante.

In questo evento, tramite il metodo “Invoke” dell’evento creato “OnDatiInviare”, verrà rilevato il valore della proprietà “Text” della casella di testo, per passarlo alle altre form.

Di seguiti si riporta il frammento di codice delle suddette operazioni.


C#

private void BtnInvia_Click(object sender, EventArgs e)

{

    OnDatiInviare?.Invoke(TxtTesto.Text);

}



Terminata questa operazione, nelle altre form dobbiamo aggiungere il riferimento all’evento appena creato in form1, in modo che ogni volta che viene eseguito le form ricevono il valore.
Nelle due form, dobbiamo creare un metodo pubblico “Collega”, che riceve come parametro la form1, in modo che possiamo aggiungerlo ad un gestore di evento

Di seguito si riporta il frammento di codice delle suddette operazioni, da fare nelle due form..

 

C#

//Evento che viene richiamato la prima volta per definire il gestore di evento

public void Collega(Form1 form1

{

    form1.OnDatiInviare += Form1_OnDatiInviare;

}

//Gestore di evento che riceve i dati dalla form1

private void Form1_OnDatiInviare(string dati)

{

    label1.Text = dati;

           

}



Quando si fa click su +=, l’editor di Visual Studio 2026 (o precedenti) suggerisce la creazione del gestore di evento, il tutto come mostrato in figura 1.


c# windows forms, passaggio dati da form a form
Figura 1 – Ci suggerisce il nome del gestore di evento.

Una volta visualizzato il nome del possibile gestore dell’evento, se il suggerimento riteniamo valido, confermiamo con il pulsante “Invio” della tastiera, il tutto come mostrato in figura 2.

c# windows forms, passaggio dati da form a form
Figura 2 – La conferma per il gestore dell’evento

Di seguito si riporta il codice per la form3.


C#

public void Collega(Form1 form1)

 {

     form1.OnDatiInviare += Form1_OnDatiInviare;

       

 }

 

 private void Form1_OnDatiInviare(string dati)

 {

    label1.Text = dati;

 }

 


Ritorniamo alla form1, e nell’evento load scriviamo il codice per avviare le due form, ma soprattutto passare al metodo pubblico “Collega” la form1.
Di seguito si riporta il frammento di codice dell’evento load della form1.




C#

private void Form1_Load(object sender, EventArgs e)

 {

 

     Form2 form2 = new();

     form2.Collega(this);

     form2.Show();

     Form3 form3 = new();

     form3.Collega(this);

     form3.Show();

 }








Dopo aver apportate queste modifiche, non resta che eseguire il codice, inserire del testo nella casella di testo, e dopo aver fatto click sul pulsante vedremo visualizzato il testo nelle due form.

Conclusioni

L’articolo ha voluto fornire al lettore una tecnica per passare dei valori tra form. Quando si sviluppano applicazioni eseguibili, può tornare utile passare valori tra le varie form, in quei contesti in cui si riporta form secondarie di dettaglio, per fornire ulteriori informazioni o gestire dati, da form secondari. Lo sviluppo di applicazioni Windows Forms, è completamente diverso da quello del web, ma con un giusto approccio può risultare molto semplice.

Programma gratuito per la gestione dei database free software DB Pro

 

programma gratuito DB pro

Se cercate un buon programma gratuito per la gestione dei database, il software Db Pro, offre un valido strumento per gestire i vari database.

Tra le varie versioni, quella gratuita, permette di gestire un certo numero di database.

Un software molto valido ed utile per chi deve gestire i database, da utilizzare su vari sistemi operativi.

Per maggiori informazioni e download, visitate il seguente sito https://www.dbpro.app/

domenica 24 maggio 2026

Download ebook Avalonia UI Succinctly

 

ebook avalonia UI

Il nostro amico Alessandro Del Sole, torno con un nuovo ebook sulla programmazione .Net.

Nell'ebook Avalonia UI, scaricabile gratuitamente o consultare l'ebook al seguente sito  https://www.syncfusion.com/succinctly-free-ebooks/avaloniaui-succinctly con le sue 135 pagine, offre al lettore la conoscenza base di questo  Framework per la realizzazione di applicazioni multi piattaforme.

L'ebook è in lingua inglese.


sabato 23 maggio 2026

Sito di intelligenza artificiale per applicare effetto ghibli colorifyai

 

sito intelligenza artificiale effetto ghibli

Sono molti i siti di intelligenza artificiale, che offrono la possibilità di creare immagini gratuitamente, ma pochi quelli che applicano alle foto o immagini effetto Ghibli.

Tra questi, il sito https://colorifyai.art/ai-studio-ghibli-filter/?lora=Ghibli offre gratuitamente e senza registrazione e senza email, la possibilità di trasformare un'immagine appena inserita, con effetto Ghibli.

Il tutto gratuitamente e senza registrazione.


venerdì 22 maggio 2026

sito di intelligenza artificiale per la creazione di immagini di tipo caricature sito caricaturer

sito creazione di caricature immagini

 

Un sito molto originale e come pochi di questo tipo, riguardante l'intelligenza artificiale.

Il sito https://www.caricaturer.io/ permette la creazione di caricature tramite l'intelligenza artificiale, digitando del testo anche in lingua italiana.

Il sito non richiede ne registrazione e ne indirizzi email, molto ben fatto.

giovedì 21 maggio 2026

Creazione di immagini gratuite tramite l'intelligenza artificiale con il sito imgtopia

 

sito creazione immagine imgtopia

Sono sempre di più i siti che permettono la creazione di immagini gratuite, senza utilizzo di registrazione o email.

Il sito https://imgtopia.com/ permette la creazione di immagini, inserendo una descrizione in lingua inglese.

Un sito molto ben fatto e facile da utilizzare.


mercoledì 20 maggio 2026

sito per modelli gratuiti di Microsoft Excel exceldoc

 

sito Excel

Un sito in lingua italiana, che permette il download gratuito e senza registrazioni di vari modelli in Microsoft Excel.

Il sito ExcelDoc, visibile qui https://exceldoc.it/ permette di scaricare modelli del foglio di calcolo più usato e conosciuto al mondo, Microsoft Excel, ordinati per categoria.

Il sito è molto ben fatto.


Creazione di immagini gratuite tramite l'intelligenza artificiale con il sito ai-drawing-generator

 

creazione di immagini

Un ottimo sito, che gratuitamente e senza registrazione e senza email, permette la creazione di immagini tramite l'intelligenza artificiale.

Parliamo del sito https://ai-drawing-generator.com/ che digitando una descrizione in lingua inglese, permette di creare immagini.


martedì 19 maggio 2026

Creazione di immagini tramite l'intelligenza artificiale image-generator.com

 

sito creazione di immagini


Il sito https://image-generator.com/ai-image-generator permette gratuitamente e senza registrazione e senza lasciare email, la possibilità di creare immagini, digitando il testo in lingua inglese.

Un sito che funziona molto bene.

lunedì 18 maggio 2026

C# elencare i file presenti in una cartella di tipo immagine webp .Net 9

Di seguito si riporta un esempio di codice, che permette di elencare tutti i file di una determinata cartella, rilevando solo quelli di tipo immagine webp, il tutto nel linguaggio di programmazione C# e versione .Net 9 .



string cartella = "C:\\Varie";

 

 try

 {

     // Recupera tutti i file nella cartella Varie di tipo webp

     var files = new DirectoryInfo(cartella).GetFiles("*.webp")

         .Select(file => new

         {

             NomeFile = file.Name,

             DataCreazione = file.CreationTime

         })

          

         .OrderByDescending(file => file.DataCreazione)

         .ToList();

 

 

     List<string> fileNames = files.Select(f => f.NomeFile).ToList();

     listBox1.DataSource = fileNames;

 

                

 }

           

 catch (DirectoryNotFoundException ex)

 {

     MessageBox.Show( "Errore: " + ex.Message);

 }

 catch (Exception ex)

 {

     MessageBox.Show($"Si è verificato un errore: {ex.Message}");

 }




Oppure


string cartella = "C:\\Varie";

 

 try

 {

     // Recupera tutti i file nella cartella

     var files = new DirectoryInfo(cartella).GetFiles()

         .Select(file => new

         {

             NomeFile = file.Name,

             DataCreazione = file.CreationTime

         })

         .Where(file => file.NomeFile.EndsWith(".webp", StringComparison.OrdinalIgnoreCase)) // Filtra solo i file .webp

         .OrderByDescending(file => file.DataCreazione)  

         .ToList();

 

 

     List<string> fileNames = files.Select(f => f.NomeFile).ToList();

     listBox1.DataSource = fileNames;

 

                

 }

           

 catch (DirectoryNotFoundException ex)

 {

     MessageBox.Show( "Errore: " + ex.Message);

 }

 catch (Exception ex)

 {

     MessageBox.Show($"Si è verificato un errore: {ex.Message}");

 }

 




domenica 17 maggio 2026

C# verificare se il pulsante Block Num è attivo

Nei progetti di tipo Windows Forms, con il linguaggio di programmazione C#, possiamo verificare se il pulsante “Blok Num” quello che abilita l’area della pulsantiera numerica, è abilitato oppure no.
Tramite il metodo “IsKeyLocked” della classe Control, passando come valore “Keys.NumLock”, possiamo sapere se è abilitato oppure no.
Di seguito il frammento di codice delle suddette operazioni.


private void BtnBlockNum_Click(object sender, EventArgs e)

{

    bool attivoBlockNum = Control.IsKeyLocked(Keys.NumLock);

    if (attivoBlockNum)

        MessageBox.Show("Tasto block num attivo");

    else

        MessageBox.Show("Tasto block num non attivo");

}


C# display a webp image file in a picturebox control

In questo esempio di codice, scoprire una tecnica per visualizzare un file immagine di tipo "Wepb" in un controllo "PictureBox".

Quando si sviluppano applicazioni Windows Forms, può nascere l'esigenza di visualizzare delle immagini, il controllo PictureBox, non permette di visualizzare i file immagine di tipo “webp”, una delle varie tecniche può essere quella di utilizzare la libreria “SixLabors.ImageSharp”, e passare lo stream dati dell’immagine alla proprietà image.

Aggiungiamo al progetto il componente “SixLabors.ImageSharp” tramite Nuget.

In alto, sopra ad ogni dichiarazione, aggiungiamo lo spazio dei nomi per utilizzare le classi di questa libreria.


Di seguito si riporta la dichiarazione delle suddette operazioni.


C#

using SixLabors.ImageSharp;

using SixLabors.ImageSharp.PixelFormats;

using SixLabors.ImageSharp.Processing;


Nell’evento click di un pulsante di un progetto Windows Forms, scriviamo il codice che rileva lo stream dati dalll’immagine di tipo “,webp” e lo passa alla proprietà Image del controllo PictureBox.


C#

string percorso = "C:\\Varie\\MiaImmagine.webp";

using (var image = SixLabors.ImageSharp.Image.Load<Rgba32>(percorso))

{

    //Trasforma il file immagine webp in png per poterlo visualizzare nel picturebox

    using (var ms = new System.IO.MemoryStream())

    {

        //L'immagine viene trasformata in formato PNG in un MemoryStream

        image.SaveAsPng(ms);

        ms.Position = 0; //Ripristina la posizione del flusso

        pictureBox1.Image = System.Drawing.Image.FromStream(ms); //Carica l'immagine nel PictureBox dallo stream dati

    }

}