Silvietta, 27 - Imardin, Kyralia
moglie devota di @gpghilardi, ginetta di gomma, bauina moffice, egocentrica web user, software developer.
Nemuriko's Home|LinkedIn|Twitter
Screen name:
Password:
(Lost password?) - Remember me
New user? signup -
non è che a qualcuno può venire in mente perché non riesco a cambiare il ForeColor della prima riga (non dell'header) di un DataGridView?
(sulle altre righe funziona.. :/)
Nemuriko: about 40 days ago, Imardin, Kyralia - 63 replies
come cambi il colore delle altre? potrebbe essere perchè ha id=0 e non parte da 1?
this->DataGRidView1->Rows[i]->DefaultCellStyle->ForeColor=Color::Gray;

L'indice dovrebbe partire da 0, no?
Nemuriko: about 40 days ago, Imardin, Kyralia
non sempre ...
oddio.. in che senso? O_o

per me ha a che fare con qualche proprietà che avrò settato male.. ma vai a sapere quale!
Nemuriko: about 40 days ago, Imardin, Kyralia
posta il ciclo completo ...
this->DataGridView1->Rows->Clear();
int i=0;
int enabled=0;

[...] // query
while (c'è un record){

array<String^>^row_data= gcnew array<String^>(3);

Color foreColor;
enabled= // prendo da db

// se è abilitata colore nero, se no grigio
if(enabled==1){
foreColor=Color::Black;
}
else {
foreColor=Color::Gray;
}

row_data->SetValue(da_db.ToString(),0);
row_data->SetValue(da_db,1);
row_data->SetValue(enabled.ToString(), 2);

this->DataGridView1->Rows->Add(row_data);

this->DataGridView1->Rows[i]->DefaultCellStyle->ForeColor=foreColor;
i++;
}
Nemuriko: about 40 days ago, Imardin, Kyralia
allora le liste dovrebbero partire da 1 ...
da quel che ricordo, l'indice 0 nel datagrid è associato alla riga header
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
avevo provato a inizializzare i=1, ma moriva su un'eccezione che mi diceva che era fuori indice
Nemuriko: about 39 days ago, Imardin, Kyralia
ho appena provato

this.dataGridView1.Rows[0].DefaultCellStyle.ForeColor = System.Drawing.Color.Red;


e con l'indice 0 parte dalla prima riga, subito sotto l'header (header escluso quindi).
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
e quindi non è un problema di indice.. :/
Nemuriko: about 39 days ago, Imardin, Kyralia
ma scusa ti va in eccezione, o semplicemente non funziona ?
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
allora se comincio con i=1, solleva un eccezione, se faccio i=0 non setta il foreColor che dico io. Ma solo sulla prima riga.
Nemuriko: about 39 days ago, Imardin, Kyralia
e che eccezione ti da ?
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
non ricordo a memoria, ma era qualcosa del tipo che non gli piace l'indice (forse out of range).
Nemuriko: about 39 days ago, Imardin, Kyralia
ummm in tal caso l'unica è che la griglia non sia popolata
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
ma non ha senso, l'eccezione sollevata non dovrebbe esistere, per il semplice fatto che con add_row tu hai aggiunto una riga e quindi i=1 è giusta come cosa ... il problema sta da qualche altra parte.

al posto di avere il contatore row[i] usa row[lista.lenght], cosi sei sicura di puntare sempre all'ultimo elemento che hai inserito.

lista.lenght -1 cosi escludi l'header
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
attì in questo modo alla prima riga prendi l'header
Buongiorno!
mo provo..
Nemuriko: about 39 days ago, Imardin, Kyralia
img
nada ... e in ogni caso, quando carico la "prima volta" la lista, la prima riga rimane del colore sbagliato. :/
Nemuriko: about 39 days ago, Imardin, Kyralia
la cosa ancora più strana è che se piazzo i punti di debug, mi setta la variabile foreColor in modo corretto. È proprio come se non l'applicasse e basta.
Nemuriko: about 39 days ago, Imardin, Kyralia
ma scusa la i-esima riga ha il valore forecolor che dici te (perchè hai controllato) ma hai controllato se è giusta la i-esima riga su cui elabora?

esempio:

i = 2

se tu controlli row[i].forecolor troverai #ff0000 che è il colore che gli vuoi dare ma row[i].value è ciò che cerchi? ma sopratutto rows.lenght è uguale a 2? visto che la tua i-esima riga è anche l'ultima (o dovrebbe esserlo)?

piccolo hack che non ricordo se si può fare su net, non ti conviene prima assegnare tutte le proprietà, comprese il forecolor e poi aggiungere la riga al datagrid?
ho bisogno di colori diversi su righe diverse.

Sì i valori sono tutti corretti.
Adesso stro provando a fare in un altro modo: prima inserisco tutte le righe e poi faccio un altro ciclo che setti i colori.

Che pacco però. Saarà sicuramente una stupidata.
Nemuriko: about 39 days ago, Imardin, Kyralia
prova a fare un refresh dopo che assegni il colore perchè è davvero strano ...
un refresh?
Nemuriko: about 39 days ago, Imardin, Kyralia
guarda qui http://msdn.microsoft.com/it-i...

lui nell'esempio prima assegna tutto e poi alla fine

dataGridView1.CellFormatting += new
DataGridViewCellForm attingEventHandler(dataGridView1_CellFormatting);

prova
non ho mica capito sai..
il mis tero si sta infittendo: se faccio il ciclo la prima volta, non funziona su nessuna riga.. se lo rifaccio funziona su tutte tranne che sulla prima riga... sto per sparare al pc.
Nemuriko: about 39 days ago, Imardin, Kyralia
posta i 2 cicli ... sicura che non hai qualche altro assegnamento della proprietà?
ma sicura che la prima riga abbia un colore ed un colore valido?
adesso ranzo tutto..
Nemuriko: about 39 days ago, Imardin, Kyralia
huahuahuauhau
sono al punto che, fuori da qualsiasi ciclo, setto il colore della prima riga a rosso.
Ebbene, lo vedo lampeggiare un secondo e poi torna nero.
Ovviamente, non viene sovrascritto da nessuna parte.
MMMMMMMMMMMMMMMMMMMM MMMMMMMM!
Nemuriko: about 39 days ago, Imardin, Kyralia
sicura ... non è possibile ...
lo so -.-
Nemuriko: about 39 days ago, Imardin, Kyralia
c'è qualcosa che non va! (lo dico con felicità!) non mi salva giuste le modifiche su quella riga.. quindi, forse, se risolvo questo problema, maaaagari, risolvo anche l'altro!
Nemuriko: about 39 days ago, Imardin, Kyralia
che bizzarria
Meemi mobileartgatt: about 39 days ago, Olevano sul Tusciano (SA)
cioè tu:

1) setti il colore rosso
2) il colore lampeggia una sola volta e poi si leva?

giusto?
ma hai codice su qualche evento della griglia ? (anche se non mi spiego quale possa essere)
artgatt: about 39 days ago, Olevano sul Tusciano (SA)
sì boss
Nemuriko: about 39 days ago, Imardin, Kyralia
adesso sto cercando di indagare su un'altra problematica che forse è collegata a sta cosa...
Nemuriko: about 39 days ago, Imardin, Kyralia
il datagrid viene popolato anche dopo non da codice?
no
Nemuriko: about 39 days ago, Imardin, Kyralia
acc ma è davvero strano ...
giuro che non capisco cosa sto sbagliando.. anche perché se cambio invece il backcolor nello stesso modo, me lo fa senza problemi..
Nemuriko: about 39 days ago, Imardin, Kyralia
ipotesi stupidissima ... prova a cliccare su un'altra riga del datagrid ... sarà la selezione?
stavo giusto guardando quello.. ora provo un'altra strada per la selezione. Secondo me ho fatto qualcosa che incasina le variabili di selezione delel celle, per cui vado a pescare i valori selezionati sbagliati.

Nemuriko: about 39 days ago, Imardin, Kyralia
no no aspè fermati io intendevo proprio l'essere selezionati e quindi colorati ...
sì sì arrì.. fidati
Nemuriko: about 39 days ago, Imardin, Kyralia
mi fido ...
aggiungo follia alal follia..
se clicko su un'altra riga della griglia, lampeggia rosso e poi torna nero.
NB: usando i punti di debug vedo che NON passa dalla riga in cui setto il colore rosso.

Nemuriko: about 39 days ago, Imardin, Kyralia
cosa non passa?
non va a quella riga.. diventa rosso prima di arrivarci
Nemuriko: about 39 days ago, Imardin, Kyralia
ma cosa diventa rosso? hai skype? aggiungimi che facciamo prima
la prima riga della datagridview..
io ti aggiungo anche.. ma non posso parlare..
Grazie per il supporto e l'aiuto in ogni caso... mi sta venendo da piangere perché mi sento una cretina a non riuscire a fare una cosa così semplice.
Nemuriko: about 39 days ago, Imardin, Kyralia
allora segui questi passaggi:

1) se clicchi con il mouse direttamente riesci a cliccarci? se si di che colore diventa?

2) prova a cliccare con il mouse su una riga diversa e vedi se cambia la prima
1) resta nera (colore di default)
2) se clicko ie sulla 3 riga, la prima riga lampeggia rosso e poi torna nera (anche se in realtà dovrebbe essere grigia)
Nemuriko: about 39 days ago, Imardin, Kyralia
tu la datagrid la popoli solo da codice?
sì..
guarda adesso nel dubbio, provo a fare un progetto vuoto, creo una datagrid e provo a settare i colori.
Voglio capire cosa faccio che non gli va bene!
Nemuriko: about 39 days ago, Imardin, Kyralia
appunto ... fammi sapere ...
infatti nel progetto "pulito" funzia tutto.
Ora passo passo copio le impostazioni che ho messo nel progetto che non funziona.
Nemuriko: about 39 days ago, Imardin, Kyralia
niente.. quello "pulito" funziona, il mio no...

È ora del commento selvaggio.
Nemuriko: about 39 days ago, Imardin, Kyralia
attendo sviluppi ... ora son curioso
share your reply: enter