Torna indietro   Hardware Upgrade Forum > Software > Programmazione

AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria
A Las Vegas AMD ha svelato i dettagli architetturali delle CPU EPYC di sesta generazione, note con il nome in codice Venice. Nuovi core Zen 6 e Zen 6c costruiti a 2 nanometri, fino a 256 core per socket, 16 canali di memoria, interfaccia PCI Express 6.0 e un'intera famiglia di proposte che va da Venice SP7 a Verano. Senza dimenticare la memoria, oggi la voce di costo più pesante in un server: AMD risponde con CXL 3.1 e con la tecnologia software MEXT, che porta la memoria flash dentro la gerarchia della DRAM.
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro
HONOR Pad X9 Max mette un pannello IPS da 13 pollici con risoluzione 2,5K e refresh a 120 Hz davanti a una batteria da 10.100 mAh e a quattro altoparlanti. Il listino parte da 399,90 euro, per un progetto molto chiaro e ambizioso: schermo ampio, buon audio e giornate lontano dalla presa, a un prezzo che non pesa sul portafoglio
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 25-11-2008, 16:41   #1
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
[C#]popolamento controlli visuali

Ciao a tutti

Ho questo piccolo problema:

ho un oggetto combobox che ha un'origine dati.

Supposto di avere una tabella: table(id, descrizione)

non ho problemi a popolare il combo con tutti i valori contenuti nel campo
descrizione.

Quello che invece non riesco a capire è come popolare un altro elemento sulla base del valore contenuto nel combo;

per esempio, se volessi una casella di testo che mi contiene l'id relativo al valore 'descrizione', dovrei fare un'altra select e popolare poi la casella di testo.

Questo ragionamento ha però secondo me un difetto di base:

se ho due valori nel campo 'descrizione' uguali, non ha senso fare una select
perchè non sarei certo di aver scelto la 'descrizione' giusta.

Per essere più chiaro:

Codice:
tabellaProva:

id - - descrizione
1  - - verde
2  - - rosso
3  - - verde
ora popolo la combobox ed avrò quindi:

Codice:
verde
rosso
verde
come faccio a ricavare senza ambiguità il valore di 'id' da mettere in un altro controllo ?

Grazie mille

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 17:15   #2
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Vedi un po' se ti aiuta

Codice:
namespace ComboStudy
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            PopCombo();
        }       

        public void PopCombo()
        {
            comboBox1.Items.Clear();
            comboBox1.Items.Add(new BusinessObject(10, "Verde"));
            comboBox1.Items.Add(new BusinessObject(20, "Rosso"));
            comboBox1.Items.Add(new BusinessObject(30, "Verde"));
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            BusinessObject bo = comboBox1.SelectedItem as BusinessObject;
            if (bo != null)
            {
                string str=string.Format("Indice {0} - ID {1}, STR {2}",comboBox1.SelectedIndex,bo.ID,bo.str);
                MessageBox.Show(str);
            }
        }
    }

    public class BusinessObject
    {
        public int ID;
        public string str;

        public BusinessObject(int p_id, string p_str)
        {
            ID = p_id;
            str = p_str;
        }

        public override string ToString()
        {
            return str;
        }
    }
}
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 17:16   #3
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Ho fatto un piccolo passo avanti mediante l'uso di un dizionario e aggiungendo un altro combobox al posto della textbox:

Codice:
//ottengo i dati dalla select, li carico nel dizionario e poi nel form:

foreach(KeyValuePair<int, string> k in classeProva.GetDizionario())
{
     comboKey.Items.Add(k.Key);
     comboColore.Items.Add(k.Value.ToString());
}

Benone, ora ho tutti i dati che mi servono ma....
devo capire ancora questo:

se scelgo un colore diverso in comboColore, mi deve variare anche il corrispondente in comboKey.

RaouL.

Piccolo Edit:

Non avevo visto ancora il tuo suggerimento
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek

Ultima modifica di RaouL_BennetH : 25-11-2008 alle 17:19.
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 17:30   #4
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Ho risolto in modo credo non proprio brillante:

Mi sono detto, dato che quando popolo le combo con i valori del dizionario, gli index sono allineati, quindi, se cambio l'index sul primo combo, posso prenderne la posizione ed assegnare la stessa sul secondo combo.

Cioè:

Codice:
private void comboColore_SelectedIndexChanged(object sender, EventArgs e)
{
    comboKey.SelectedIndex = comboColore.SelectedIndex;
}
.... non picchiatemi ....

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 17:55   #5
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Allora non ho capito.
Comunque la soluzione e' (quasi) sempre popolare la combo direttamente con gli oggetti che si vogliono rappresentare, non con solo la loro rappresentazione (che appunto e' senza chiave)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 18:15   #6
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
Allora non ho capito.
Comunque la soluzione e' (quasi) sempre popolare la combo direttamente con gli oggetti che si vogliono rappresentare, non con solo la loro rappresentazione (che appunto e' senza chiave)


Scusami gugoXX, non credo di aver capito bene; in sostanza dici che non è molto corretto popolare solo con i "records" ottenuti dall'origine dati ?

Grazie mille

RaouL.
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 18:20   #7
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
No, anzi, l'opposto.
E' opportuno popolare le combo (e altri controlli) proprio con i record ottenuti dal database, e non solo una descrizione.

Dove ciascun record avra' chiave, descrizione e tutto il resto.
In questo modo quando selezionerai l'elemento saprai tutto di esso, descrizione e chiave compresi.
Sulla base della chiave quindi potrai agire su altri elementi, lanciare altre query, etc.
Prima avevo postato un esempio, forse l'avevi perso.
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 18:26   #8
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
No, anzi, l'opposto.
E' opportuno popolare le combo (e altri controlli) proprio con i record ottenuti dal database, e non solo una descrizione.

Dove ciascun record avra' chiave, descrizione e tutto il resto.
In questo modo quando selezionerai l'elemento saprai tutto di esso, descrizione e chiave compresi.
Sulla base della chiave quindi potrai agire su altri elementi, lanciare altre query, etc.
Prima avevo postato un esempio, forse l'avevi perso.
Ah ok

Eh si, ho messo un edit perchè l'ho notato solo dopo
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 19:46   #9
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Quote:
Originariamente inviato da gugoXX Guarda i messaggi
No, anzi, l'opposto.
E' opportuno popolare le combo (e altri controlli) proprio con i record ottenuti dal database, e non solo una descrizione.

Dove ciascun record avra' chiave, descrizione e tutto il resto.
In questo modo quando selezionerai l'elemento saprai tutto di esso, descrizione e chiave compresi.
Sulla base della chiave quindi potrai agire su altri elementi, lanciare altre query, etc.
Prima avevo postato un esempio, forse l'avevi perso.
Ohé Gugo,

una domanda:

con la API è possibile associare un puntatore a ogni voce di una listbox(o combobox) tramite le funzioni GetItemDataPtr/SetItemDataPtr.
Il puntatore può puntare a dati semplici, come int, o a dati più complessi, come una struct.
Non esiste, in C#, qualcosa di simile?

Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 19:56   #10
gugoXX
Senior Member
 
L'Avatar di gugoXX
 
Iscritto dal: May 2004
Città: Londra (Torino)
Messaggi: 3692
Certo.
Se vedi nel mio esempio, la combobox ha una proprieta'
Items
che sono gli oggetti contenuti nella combobox.
La combobox mostrera' il risultato della ToString() di ciascuno di questi elementi.
Ma ogni elemento puo' essere del tipo che si vuole.
Tutti gli oggetti hanno un-implementazione di base della ToString(), anche se e' bene effettuarne l'override, proprio per permettere il popolamento con una stringa custom.

Items implementa l'interfaccia IEnumerable, e come tale la si puo' trattare, con Add, Remove, foreach, Clear, etc.

Quindi, quando si aggiunge un'istanza di una classe (che e' per riferimento in C), di fatto si aggiunge solo il puntatore ad Items.
Quandi si aggiunge invece una struttura o un tipo Value base, di fatto si aggiunge una nuova copia ad Items. Sotto la coperta viene creato al volo un oggetto il cui puntatore viene aggiunto ad Items. (A differenza del C++ pero' la distruzione di quest'oggetto creato al volo verra' demandata al Garbage Collecor, una volta che l'oggetto verra' scodato da Items)
__________________
Se pensi che il tuo codice sia troppo complesso da capire senza commenti, e' segno che molto probabilmente il tuo codice e' semplicemente mal scritto.
E se pensi di avere bisogno di un nuovo commento, significa che ti manca almeno un test.

Ultima modifica di gugoXX : 25-11-2008 alle 19:59.
gugoXX è offline   Rispondi citando il messaggio o parte di esso
Old 25-11-2008, 20:11   #11
Vincenzo1968
Bannato
 
Iscritto dal: Mar 2008
Città: Villabate(PA)
Messaggi: 2515
Grazie mille

Approfitto per precisare che ricordavo male. La funzioni di cui parlavo sono implementate su MFC. Per la API bisogna utilizzare i messaggi CB_GETITEMDATA/CB_SETITEMDATA o le macro ComboBox_GetItemData/ComboBox_SetItemData.

Vincenzo1968 è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


AMD EPYC Venice: dentro Zen 6, i SoC a 256 core e la sfida al costo della memoria AMD EPYC Venice: dentro Zen 6, i SoC a 256 core ...
HONOR Pad X9 Max recensione, schermo ultra large a meno di 400 euro HONOR Pad X9 Max recensione, schermo ultra large...
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Alexa.com è disponibile in Italia: Alexa...
AliExpress, 4 tablet a super prezzi per ...
Google Gemini: i contenuti di Gmail e Dr...
Microsoft ha scoperto come trasformare u...
Chrome 157, meglio aggiornare subito: Go...
BYD e Geely all'assalto della Formula 1?...
Le novità di Windows 11 per il Pa...
Windows 10 si aggiorna ancora: Microsoft...
Anche l'intelligenza artificiale tra le ...
ASUS ha annunciato il nuovo ROG NUC 16 c...
Smartphone con memorie 'riciclate': &egr...
Photoshop, Relight esce dalla beta: fino...
Ecco il braccio robotico di BYD che si c...
Amazon manda un drone di ronda in casa e...
Come si sopravvive un anno su Marte? Qua...
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: 13:09.


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