|
Creato da Arudy il 15/09/2006
Note, appunti, di tutto un pò riguardo alla mia esperienza di programmatore
|
Tag
Cerca in questo Blog
Menu
I miei link preferiti
Area personale
Salve a tutti, se vi interessa seguire il mio blog mi sono trasferito qui: http://community.visual-basic.it/Rudy/
![]() |
Nella comunity Visual Basic Tips & Tricks, da oggi potete trovare un mio articolo tecnico sulla configurazione delle applicazioni: Configurare un'applicazione
![]() |
Per aggiungere un icona ad un nuovo componente creato con Visual Studio in modo che si veda nella toolbox si puň fare in una delle seguenti maniere:
// Specifica la bitmap associata al tipo Button.
[ToolboxBitmap(typeof(Button))]
class MyControl1 : UserControl
{
}
// Specifica un bitmap file.
[ToolboxBitmap(@"C:\Documents and Settings\Joe\MyPics\myImage.bmp")]
class MyControl2 : UserControl
{
}
// Specifica un tipo che indica l'assembly in cui cercare e il nome del immagine nelle risorse.
[ToolboxBitmap(typeof(MyControl), "MioControlloBitmap")]
class MyControl : UserControl
{
}
Va ricordato che l'immagine deve essere una bitmap a 16x16 o 32x32, inoltre se usate il primo metodo il nome che deve avere l'immagine nelle risorse deve essere "Namespace.NomeClasse.bmp" e se usate l'ultimo metodo il nome deve essere "Namespace.MioControlloBitmap"
![]() |
Ecco come criptare e decriptare una semplice stringa di testo:
private static byte[] arrDESKey = new byte[] {12, 16, 63, 156, 58, 4, 218, 32};
private static byte[] arrDESIV = new byte[] {55, 103, 243, 79, 36, 99, 17, 3};
public static string Encrypt(string str)
{
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
MemoryStream objMemoryStream = new MemoryStream();
CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateEncryptor(arrDESKey,arrDESIV),CryptoStreamMode.Write);
StreamWriter objStreamWriter = new StreamWriter(objCryptoStream);
objStreamWriter.Write(str);
objStreamWriter.Flush();
objCryptoStream.FlushFinalBlock();
objMemoryStream.Flush();
return Convert.ToBase64String(objMemoryStream.GetBuffer(), 0, (int)objMemoryStream.Length);
}
public static string Decrypt(string str)
{
DESCryptoServiceProvider objDES = new DESCryptoServiceProvider();
byte[] arrInput = Convert.FromBase64String(str);
MemoryStream objMemoryStream = new MemoryStream(arrInput);
CryptoStream objCryptoStream = new CryptoStream(objMemoryStream,objDES.CreateDecryptor(arrDESKey,arrDESIV),CryptoStreamMode.Read);
StreamReader objStreamReader = new StreamReader(objCryptoStream);
return objStreamReader.ReadToEnd();
}
![]() |
Quante volte vi č capitato di avere la necessitŕ di aggiornare un controllo che si trova su una form istanziata in un thread principale, da un altro thread che sta seguendo un operazione asincrona? Ecco come evitare errori di cross thread e non duplicare il codice se si effettua la chiamata dal thread principale:
private delegate void InvokeMiaFunzione();
private InvokeMiaFunzione mInvokeMiaFunzione;
private void MiaFunzione()
{
if (this.InvokeRequired)
{
this.Invoke(mInvokeMiaFunzione);
}
else
{
// Qui si puň modificare lo stato del controllo della form senza incorrere in nessun problema
}
}
private void CostruttoreDellaClasse()
{
mInvokeMiaFunzione= new InvokeMiaFunzione (MiaFunzione);
}
private void ProcessoAsincrono()
{
MiaFunzione();
}
private void ProcessoSincrono()
{
MiaFunzione();
}
![]() |
« Precedenti | Successivi » |