Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Salvataggio evento bottone
venerdì 09 gennaio 2009 - 10.37
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
ven 9 gen 2009 - 10:37
Ciao ragazzi ,riprendendo questo thread
http://www.dotnethell.it/forum/messages.aspx?ThreadID=27718
dove mi viene spiegato come serializzare una classe button che non è serializzabile,
volevo capire come in quel codice (struct) io oltre che salvare le proprietà rilevanti di un bottone possa anche salvare gli eventi
Grazie
Antonio
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
ven 9 gen 2009 - 13:44
Ciao
Cosa intendi con "salvare gli eventi"? Vuoi salvare quali sono le funzioni che gestiscono un determinato evento? Oppure vuoi registrare qualcosa (ad esempio l'ora e il tipo di evento) su un file quando l'evento viene scatenato?
Luca
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
ven 9 gen 2009 - 15:58
Ciao Luca,
finalmente posso chiamarti per nome
tu nel codice che mi hai dato mi parlavi di proprietà rilevanti
e mi hai creato quel famoso "buttonInfo"
io vorrei anche poter salvare oltre Name,Text,bounds anche Color del bottone, tooltip ad esso associato, e qualche evento che associo al bottone
tipo ho l'evento click e l'evento mouseUp e vorrei salvarli in modo tale che quando Deserializzo possa ancora averli,sempre fruttando quella classe che mi hai passato tu che è veramente ottima!!
A gia che ci sono ti pongo un problema
public ButtonInfor(button from)
{ this.name=from.name:
this.text=from.text;
}
a volte mi da errore dicendo "Riferimento ad un oggetto non impostato ad un istanza..m parla di direttiva new e mi evidenzia this.name=from.name
motivo bho!
Grazie tante per il tuo aiuto!
Luca
aiedail92
Profilo
| Expert
993
messaggi | Data Invio:
ven 9 gen 2009 - 23:16
Alla struttura ButtonInfo puoi aggiungere tutti i dati che vuoi, quindi puoi espanderla con un
Color BackColor;
e aggiungere la copia del colore nel costruttore e nel codice di conversione, e uguale con le altre proprietà che ti servono.
Per quanto riguarda gli eventi, non penso proprio che si possano serializzare i metodi associati ad esso...
Invece l'errore che ti dà è dovuto al fatto che cerchi di assegnare un elemento null, non impostato, invece che un bottone allocato. Devi quindi prima creare il bottone con l'operatore new
Luca
toniovigi
Profilo
| Expert
540
messaggi | Data Invio:
lun 12 gen 2009 - 10:31
Che brutta cosa che mi hai detto,dimmi che non è cosi:
miobottone.MouseDown += new MouseEventHandler(evento_MouseDown);
miobottone.MouseMove += new MouseEventHandler(evento_MouseMove);
miobottone.MouseUp += new MouseEventHandler(evento_MouseUp);
Al mio bottone ho associato queste 3 righe,praticamente servono per spostare e ridimensionare il bottone,solo che appunto quando serializzo io volevo poi riavere queste "righe"
E l'unica parte del programma che mi manca,che sfiga,non ci credo che non si può fare!!
CONFIDO NEI VOSTRI AIUTI!:)
Ho testato per quanto riguarda il colore ma non sono riuscito,ho modificato come segue :
public struct ButtonInfo
{
/// <summary>
/// Crea una struttura ButtonInfo a partire da un bottone, copiando le proprietà rilevanti
/// </summary>
public ButtonInfo(Button from)
{
this.Name = from.Name;
this.Text = from.Text;
this.Bounds = from.Bounds;
//Assegna le altre proprietà che intendi salvare
this.backcolor = from.BackColor;
}
/// <summary>
/// Conversione implicita da Button a ButtonInfo
/// </summary>
/// <remarks>Serve per poter scrivere buttonInfo = button;</remarks>
public static implicit operator ButtonInfo(Button from)
{
return new ButtonInfo(from);
}
/// <summary>
/// Conversione implicita da ButtonInfo a Button
/// </summary>
/// <remarks>Serve per poter scrivere button = buttonInfo;</remarks>
public static implicit operator Button(ButtonInfo from)
{
Button b = new Button();
b.Name = from.Name;
b.Text = from.Text;
b.Bounds = from.Bounds;
b.BackColor = from.backcolor;
//Assegna le altre proprietà che intendi salvare
return b;
}
//Nome del Button
public string Name;
//Testo del button
public string Text;
//Posizione e dimensioni del Button
public Rectangle Bounds;
//Aggiungi altre proprietà da serializzare
public System.Drawing.Color backcolor;
}
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !