Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
ASUS Expertbook PM3: il notebook robusto per le aziende
ASUS Expertbook PM3: il notebook robusto per le aziende
Pensato per le necessità del pubblico d'azienda, ASUS Expertbook PM3 abbina uno chassis particolrmente robusto ad un pannello da 16 pollici di diagonale che avantaggia la produttività personale. Sotto la scocca troviamo un processore AMD Ryzen AI 7 350, che grazie alla certificazione Copilot+ PC permette di sfruttare al meglio l'accelerazione degli ambiti di intelligenza artificiale
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-10-2012, 23:51   #1
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
[Problema c#]Passaggio istanza di Form1 a un Form2

Ciao ragazzi vi scrivo per avere delle info sul passaggio di un'oggetto da un form all'altro in c#..
praticamente sto creando un applicazione che fa delle determinate cose in un form, poi viene aperto un nuovo form che deve permettere di modificare l'oggetto in questione e ritornare l'oggetto modificato al form di partenza.

Per fare cio ho quindi creato due form, una volta avviato il primo (Form1) e fatto quello che si deve fare (viene creato l'oggetto, si inzializza, si fanno le operazioni ecc), clicco su un pulsante 'Modifica' che crea una nuova istanza di FormModifica:

private void btnModifica_Click(object sender, EventArgs e)
{
FormModifica fm = new FormModifica();
fm.ShowDialog();
}

E fino a qui ci siamo, il secondo form viene avviato...ma devo passare al nuovo form l'oggetto 'o' sul quale deve lavorare
Il problema è che non riesco a passare l'oggetto perchè dal FormModifica devo creare un'istanza del Form1 e creandola si viene a creare un nuovo Form che non contiene i dati che mi interessano..come posso passare l'istanza Form1 sulla quale ho lavorato, al form2?

Spero di essere stato chiaro se non avete capito qualcosa ditemelo ^^
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 01:23   #2
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Darioct28 Guarda i messaggi
Ciao ragazzi vi scrivo per avere delle info sul passaggio di un'oggetto da un form all'altro in c#..
praticamente sto creando un applicazione che fa delle determinate cose in un form, poi viene aperto un nuovo form che deve permettere di modificare l'oggetto in questione e ritornare l'oggetto modificato al form di partenza.

Per fare cio ho quindi creato due form, una volta avviato il primo (Form1) e fatto quello che si deve fare (viene creato l'oggetto, si inzializza, si fanno le operazioni ecc), clicco su un pulsante 'Modifica' che crea una nuova istanza di FormModifica:

private void btnModifica_Click(object sender, EventArgs e)
{
FormModifica fm = new FormModifica();
fm.ShowDialog();
}

E fino a qui ci siamo, il secondo form viene avviato...ma devo passare al nuovo form l'oggetto 'o' sul quale deve lavorare
Il problema è che non riesco a passare l'oggetto perchè dal FormModifica devo creare un'istanza del Form1 e creandola si viene a creare un nuovo Form che non contiene i dati che mi interessano..come posso passare l'istanza Form1 sulla quale ho lavorato, al form2?

Spero di essere stato chiaro se non avete capito qualcosa ditemelo ^^
Se non ho capito male dall'istanza di Form1 crei un'istanza di FormModifica, e a questa FormModifica vuoi passare l'oggetto genitore, cioè l'istanza di Form1 per appunto permettere modifiche su di essa.
In tal caso ti basta specificare un costruttore di FormModifica (o modificare quello che viene autogenerato) che accetti in ingresso un oggetto di tipo Form1. Fatto questo il codice da te scritto viene modificato semplicemente così:
Codice:
private void btnModifica_Click(object sender, EventArgs e)
{
   FormModifica fm = new FormModifica(this);
   fm.ShowDialog();
}
Era questo che intendevi?
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 09:27   #3
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Sisi ecco una cosa del genere, come avviene per gli oggetti standard che tramite costruttore si passano, volevo passare il form al nuovo form...quindi basta mettere la parola this è avrò l'istanza nel formload del FormModifica?
Poi dal FormModifica, per mettere l'istanza in un oggetto di classe Form1, in modo da poterci lavorare come faccio?
Ne FormModifica_Load come faccio a tirarmi l'istanza appena passata e metterla in un oggetto?
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 11:16   #4
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Darioct28 Guarda i messaggi
Sisi ecco una cosa del genere, come avviene per gli oggetti standard che tramite costruttore si passano, volevo passare il form al nuovo form...quindi basta mettere la parola this è avrò l'istanza nel formload del FormModifica?
Poi dal FormModifica, per mettere l'istanza in un oggetto di classe Form1, in modo da poterci lavorare come faccio?
Ne FormModifica_Load come faccio a tirarmi l'istanza appena passata e metterla in un oggetto?
Come ti dicevo devi modificare il costruttore di FormModifica (o creartene uno di nuovo) in modo che accetti un'istanza di Form1.

Ipotizziamo che tu, all'inizio del programma, ti crei un'istanza di Form1 chiamata mainWindow, che è per l'appunto la tua pagina principale. Dopodichè tramite pulsante invochi l'apertura di una nuova finestra di tipo FormModifica.

Così:
Codice:
private void btnModifica_Click(object sender, EventArgs e)
{
FormModifica fm = new FormModifica(this);
fm.ShowDialog();
}
Questo, come detto prima, impone che tu faccia due cose, prima di tutto che inserisca tra i campi della classe FormModifica una variabile di tipo Form1, chiamata per esempio _parent, e che poi tu inserisca un costruttore che accetti in ingresso una istanza di Form1:

Codice:
public FormModifica (Form1 parent)
{
   _parent = parent;   
}
In questa maniera _parent "punta" all'istanza mainWindow e tramite di essa puoi modificarla.

Spero di essermi spiegato bene
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 12-10-2012, 22:50   #5
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Non ci avevo completamente fatto caso che form.cs essendo una classe ha il suo costruttore e potevo passare parametri usando quello xD
Comunque alla fine invece di passare l'intero form ho passato solo l'oggetto che dovevo modificare, che ho poi ritornato al form principale tramite un metodo!

Adesso volevo chiederti un'altra cosa...so che siamo offtopic ma non vorrei aprire un'altra discussione solo per questa cosa...come si crittografa un file?
Ora come ora salvo il file come testo tramite StreamWriter, writeline(), ecc ma così ovviamente è facile modificare il file salvato anche con il semplice notepad...come posso scriverlo in modo da renderlo illeggibile al blocco note, ma solo all app?
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2012, 01:18   #6
[Kendall]
Senior Member
 
L'Avatar di [Kendall]
 
Iscritto dal: Jul 2005
Città: Vicenza
Messaggi: 1570
Quote:
Originariamente inviato da Darioct28 Guarda i messaggi
Non ci avevo completamente fatto caso che form.cs essendo una classe ha il suo costruttore e potevo passare parametri usando quello xD
Comunque alla fine invece di passare l'intero form ho passato solo l'oggetto che dovevo modificare, che ho poi ritornato al form principale tramite un metodo!
In che senso "hai ritornato"? Se hai modificato lo stesso oggetto non vi è alcunchè da ritornare, perchè la modifica l'hai fatta sull'oggetto originario.

Quote:
Adesso volevo chiederti un'altra cosa...so che siamo offtopic ma non vorrei aprire un'altra discussione solo per questa cosa...come si crittografa un file?
Ora come ora salvo il file come testo tramite StreamWriter, writeline(), ecc ma così ovviamente è facile modificare il file salvato anche con il semplice notepad...come posso scriverlo in modo da renderlo illeggibile al blocco note, ma solo all app?
Difficile spiegare tutto in un forum, ti consiglio di leggere un po' di materiale didattico a riguardo, perchè tutto ciò che riguarda i tipi di stream e la loro gestione non è banale (non che sia ipercomplessa, ma ha bisogno di una certa trattazione secondo me e non due righe in croce su di un forum). Io, per la cronaca, mi son trovato molto bene con "C# in a nutshell"
[Kendall] è offline   Rispondi citando il messaggio o parte di esso
Old 13-10-2012, 11:08   #7
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Ok ti ringrazio per i consigli vedrò di informarmi

Per ritornare intendo che ho passato l'oggetto, l'ho assegnato a una variabile locale, e poi tramite un metodo l'ho ritornato

object o;

//costruttore
public FormModifica(object ogg)
{
Object o= ogg
}

..
//codice per la modifca//
..

//ritorna l'oggetto dopo averlo modificato
public object getOggettoMod()
{
return ogg;
}

quest'ultimo metodo lo chiamo nel form principale dopo aver chiuso il dialog formModifica in questo modo:

oggMod=fm.getOggettoMod();
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2012, 18:09   #8
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Quote:
Originariamente inviato da [Kendall] Guarda i messaggi
In che senso "hai ritornato"? Se hai modificato lo stesso oggetto non vi è alcunchè da ritornare, perchè la modifica l'hai fatta sull'oggetto originario.
Alla fine ho fatto così. Meno righe di codice e meno procedimenti doppi inutili
Il programma è quasi completo adesso! Appena lo finisco vi posto il video demo ^^

Comunque un ultima cosa...Oltre al form modifica ho creato altri form, tutti aperti in showdialog...
Il funzionamento è lo stesso, una volta effettuate le operazioni, si clicca in un bottone che avvia il metodo corrispondente, fa le operazioni e poi torna un oggetto di tipo DialogResult.Ok
C'è un piccolo problema però, nel caso in cui l'utente inserisce dei dati non validi, l'errore viene segnalato tramite MessageBox, ma essendo che il bottone torna l'oggetto di tipo DialogResult quando lo premo, il form viene chiuso e quindi l'utente deve ripetere la procedura (reinserendo i dati ecc) il che è un pò antipatico....
C'è un modo per evitare che il bottone torni il DialogResult una volta finito il metodo, e farlo solo se effettivamente la procedura è andata a buon fine?
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 04-11-2012, 19:43   #9
simo8
Member
 
Iscritto dal: Jul 2009
Messaggi: 146
Si , basta non mettere il DialogResult.Ok quando preme il pulsante ok . Quando preme il pulsante OK tu chiami una procedura che controlla se gli input sono accettabili , se il controllo va a buon fine allora fai il set DialogResult.Ok , altrimenti esci dalla sub senza fare niente.

Codice:
Private Sub OKButton_Click(ByVal sender As Object, ByVal e As RoutedEventArgs) Handles OKButton.Click

 //funzione che fa il controllo sull'input 
 controllo()

End Sub

private sub controllo()

//controlli su input ...

//esito true se input accettabile altrimenti else

 if esito = true then
  DialogResult.Ok
 else 
  //segnalare errore su input
 messagebox.show("ERRORE")
 end if

end sub

Ultima modifica di simo8 : 04-11-2012 alle 19:48.
simo8 è offline   Rispondi citando il messaggio o parte di esso
Old 05-11-2012, 13:23   #10
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Perfetto adesso funziona ^^ Ci siamo quasi...un ultima cosa esiste qualche metodo per ridimensionare file immagine?

Vi spiego, praticamente quando viene selezionata un immagine, essa viene copiata in una cartella nella stessa directory dell eseguibile, ma ovviamente la dimensione resta quella originale...dato che non mi importa della qualità, perchè poi dentro il form l'immagine viene visualizzata ridimensionata proporzionalmente alla dimensione di un picture box, esiste un modo per ridimensionare il file copiato, in modo da risparmiare spazio sul disco?
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
Old 06-11-2012, 17:45   #11
Darioct28
Member
 
Iscritto dal: Jun 2012
Messaggi: 88
Come promesso eccovi il video del programma

Per il fatto dell'immagine se sapete aiutarmi bene se no più in la si vedrà alla fine non è una cosa fondamentale

http://www.youtube.com/watch?feature...&v=NSCtAcW_2pQ

Nel canale trovate anche altri video di altri programmi!

Ultima modifica di Darioct28 : 06-11-2012 alle 17:47.
Darioct28 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
Recensione OnePlus 15: potenza da vendere e batteria enorme dentro un nuovo design   Recensione OnePlus 15: potenza da vendere e batt...
PS5 in super offerta per il Black Friday...
USA, export di chip AI: Casa Bianca cont...
FSR 4 su Radeon RX 7000, 6000 e 5000? Ci...
3 iPad Pro con chip M4 scontati di oltre...
HONOR Magic 8 Pro: svelata la data di la...
5G: entra in vigore il sistema AGCOM dei...
Bonus Elettrodomestici 2025, grande succ...
NVIDIA mette a tacere i timori della bol...
Col Black Friday partono anche gli scont...
I ribassi più pesanti del vero Bl...
Settimana del Black Friday: pioggia di s...
Speciale Blay Friday Dyson, sconti mai v...
I portatili più scontati del Blac...
WiFi al massimo: gli ASUS più pot...
Domotica in super sconto: tado° e Ne...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 08:42.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v