giovedì 30 luglio 2026

C# Windows Forms, impostare la selezione di una riga al centro del controllo DatagridView.

 

seleziona riga al centro datagridview


In questo frammento di codice nel linguaggio di programmazione C#, ed in ambiente Windows Forms, vedremo come selezionare una riga al centro del controllo DatagridView.-


C#

private void Form1_Load(object sender, EventArgs e)

 {

 

 

 

     foreach (DataGridViewRow riga in dataGridView1.Rows)

     {

         object? objValore = riga.Cells["Nome"].Value ?? null;

 

         if (objValore != null &&

             objValore != DBNull.Value &&

             Convert.ToString(objValore) == "Nome070")

         {

             riga.Selected = true;

 

             //Rilevo le righe che sono visibili

             int righeVisibili = dataGridView1.DisplayedRowCount(false);

 

             //Ottengo la centratura dividendo per due e verifico il numero di righe sulla griglia con quello ottenuto per evitare errori

             int targetIndex = riga.Index - (righeVisibili / 2);

 

             if (targetIndex < 0)

                 targetIndex = 0;

 

             if (targetIndex >= dataGridView1.Rows.Count)

                 targetIndex = dataGridView1.Rows.Count - 1;

 

             dataGridView1.FirstDisplayedScrollingRowIndex = targetIndex;

 

             break;

         }

     }


 }


mercoledì 29 luglio 2026

agent gratuito rixx in lingua italiana

 

agent gratuito Rixx

Un altro nuovo agente gratuito, con il quale fare richieste in lingua italiana, parliamo di Rixx, qui https://rixx.app/ il sito, dove è possibile fare domande in italiano.

Il sito non richiede ne registrazione e ne indirizzo email. 


martedì 28 luglio 2026

Rilasciato il pacchetto di installazione per il programma Lupo

 

Programma installazione Lupo

In questi giorni ho rilasciato il pacchetto di installazione di Lupo, il primo progetto che ho pubblicato su GitHub. Se volete saperne di più, potete leggere l'articolo dedicato:

https://emanuelemattei.blogspot.com/2026/06/software-gratuito-lupo-per-il-download.html

Oltre al codice sorgente, da oggi è disponibile anche il pacchetto di installazione, pensato per chi desidera utilizzare il programma senza dover configurare un ambiente di sviluppo o eseguire direttamente il codice sorgente.

Nella parte destra della pagina di GitHub, come mostrato nell'immagine qui sotto, è presente la sezione Release. Facendo clic su questa voce si aprirà una pagina contenente i file della release, tra cui LupoSetup.exe.

È sufficiente scaricare LupoSetup.exe e, in pochi secondi, il programma sarà installato e pronto per l'uso.

Come sempre, sarò lieto di ricevere feedback, suggerimenti e qualsiasi altro commento possa contribuire a migliorare il progetto.


Programma installazione Lupo


lunedì 27 luglio 2026

C# rilevare la data di creazione e modifica di un file

Il frammento di codice qui di seguito, nel linguaggio di programmazione C#, in un progetto Windows Forms, permette di rilevare la data di creazione e modifica di un file.


C#

private void BtnRilevaDataFile_Click(object sender, EventArgs e)

 {

     try

     {

         string percorso = @"c:\varie\ucellino.jpg";

         if (!File.Exists(percorso))

         {

             return;

         }

 

         DateTime dataCreazione = File.GetCreationTime(percorso);

 

         DateTime dataModifica = File.GetLastWriteTime(percorso);

 

         MessageBox.Show("File Creato: " + dataCreazione);

 

         MessageBox.Show("File Modificato: " + dataModifica);

 

     }

     catch (IOException exio)

     {

         MessageBox.Show(exio.Message);

     }

     catch (Exception ex)

     {

         MessageBox.Show(ex.Message);

     }

 }


domenica 26 luglio 2026

download gratuito gioco Amiko Arena

 

video gioco amiko arena

Da qualche giorno è disponibile un video gioco per sistemi operativi Windows, di tipo avventura, adatto a bambini e non solo.

Il gioco, offre una giocabilità molto carina. 

Per maggiori informazioni e per il download gratuito, visitate il seguente sito https://store.epicgames.com/p/amiko-arena-a5986d

sabato 25 luglio 2026

Microsoft Outlook: come programmare l'invio di un'email

 


In questo articolo vedremo come programmare l'invio di un'email a un determinato orario o anche in un giorno specifico utilizzando Microsoft Outlook.

Può capitare di avere la necessità di inviare un'email a una certa ora o in una determinata data. Grazie alle funzionalità offerte da Microsoft Outlook, è possibile pianificare l'invio del messaggio in modo semplice e veloce.

Dopo aver creato un nuovo messaggio, inserito il destinatario (o i destinatari), l'oggetto, il testo ed eventuali allegati, facciamo clic sulla scheda Opzioni, dove troveremo diversi pulsanti, come mostrato nella figura 1.





Figura 1 - I pulsanti del menu opzioni.


Facciamo clic sul pulsante "Ritarda recapito", contraddistinto dall'icona di una busta con un orologio, come mostrato nella figura 1.

Facendo clic su questo pulsante, verrà aperta una finestra (figura 2) suddivisa in varie sezioni. Tra queste, la sezione "Opzioni di recapito" ci permette di impostare il giorno e l'ora in cui verrà inviata l'email.

Se desideriamo inviare l'email nello stesso giorno, possiamo lasciare la data proposta, che corrisponde a quella odierna, e impostare l'orario desiderato.

Una volta configurate le opzioni di invio, facciamo clic sul pulsante "Chiudi".

 


Figura 2 - La finestra per le opzioni di invio 

Dopo aver fatto clic sul pulsante Chiudi, il pulsante "Ritarda recapito" verrà evidenziato con uno sfondo grigio, come mostrato nella figura 3.

 




Figura 3 - Il pulsante ritarda recapito, che evidenzia l'impostazione di ritardo

Ora non resta che inviare l'email facendo clic sul pulsante Invia. Il messaggio rimarrà nella cartella Posta in uscita fino al giorno e all'orario impostati, dopodiché verrà inviato automaticamente.


Conclusioni

In questo articolo abbiamo visto una funzionalità molto utile di Microsoft Outlook, che consente di programmare l'invio delle email in una data e a un orario prestabiliti. Si tratta di una funzione particolarmente pratica quando si desidera che un messaggio venga recapitato in un momento preciso, senza dover essere presenti davanti al computer.

venerdì 24 luglio 2026

Terminato il progetto Lupo, per il download delle immagini del motore di ricerca Bing

 

Programma lupo

Terminato in questi giorni il progetto Lupo, qui https://github.com/Emanuele2025/Lupo il repository, che permette di scaricare le immagini di sfondo del motore di ricerca Bing.

Il progetto è interamente realizzato nel linguaggio di programmazione C# e di tipo Windows Forms.

giovedì 23 luglio 2026

C# Windows Forms, selezionare tramite un menu contestuale contexmenustrip le righe che hanno il valore uguale di una determinata colonna di un controllo datagridview

Il frammento di codice riportato di seguito mostra come selezionare, tramite una voce del menu contestuale di un controllo DataGridView, tutte le righe che contengono lo stesso valore in una determinata colonna.

In questo esempio, la colonna di riferimento si chiama "Nome". Facendo clic con il tasto destro su una cella e scegliendo la voce del menu contestuale, verranno selezionate tutte le righe che hanno lo stesso valore nella colonna Nome.

Per prima cosa, a livello di form, dichiariamo una variabile che conterrà il valore della cella sulla quale viene eseguito il clic con il tasto destro.

Di seguito la dichiarazione della variabile.

 

C#

string testoSel = "";



Successivamente, nell'evento CellMouseDown del controllo DataGridView, scriviamo il codice che intercetta il clic con il tasto destro, seleziona la riga corrente e memorizza nella variabile il valore della colonna Nome.

Di seguito il codice.

 

C#

private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)

{

    //Verifico il tasto detro e se non ha fatto click nell'intestazione delle grafiglia o fuori dalle celle

    if (e.Button != MouseButtons.Right)

        return;

 

    //Escludo intestazioni e griglia

    if (e.RowIndex < 0 || e.ColumnIndex < 0)

        return;

 

    //Rilevo oggetto riga

    var riga = dataGridView1.Rows[e.RowIndex];


    //seleziono la riga dove ho fatto click

    dataGridView1.ClearSelection();

    riga.Selected = true;

           

    testoSel = riga.Cells["Nome"].Value?.ToString();

    //Abilito il menu solo se c'è un valore

    mniSeleziona.Enabled = !string.IsNullOrEmpty(testoSel);

 

 

    contextMenuStrip1.Show(Cursor.Position);

}



Quando l'utente fa clic sulla voce del menu contestuale, il codice scorre tutte le righe della DataGridView e seleziona quelle che hanno lo stesso valore della colonna Nome memorizzato nella variabile testoSel.

Di seguito il codice dell'evento Click della voce di menu.

C#

private void mniSeleziona_Click(object sender, EventArgs e)

{

    if (string.IsNullOrWhiteSpace(testoSel))

        return;

 

 

    foreach (DataGridViewRow row in dataGridView1.Rows)

    {

        string nome = row.Cells["Nome"].Value?.ToString();

 

        if (nome == testoSel)

        {

            row.Selected = true;

        }

    }

}








Con questa tecnica è possibile selezionare rapidamente tutte le righe che condividono lo stesso valore in una determinata colonna. È sufficiente sostituire "Nome" con il nome della colonna desiderata per adattare il codice ad altri scenari.