To sam nekako rešio tako da radi bez Validate().
No, javio se novi problem. NEREŠIV ! ! !
P O M O Ć ! ! !
Radim sa dataGridView komponentom i treba da obradim izmene podataka u koloni tj. da ih validiram. Kad u kodu koji obrađuje pritisak na dugme stavim:
Code:
float pom = float.Parse(Convert.ToString(dataGridView1[1, i].Value));
sve radi bez problema. Ali ako to isto stavim u kodu rukovaoca događajem CellValidating za tu tabelu baca FormatException. Izmenio sam kod tako da sam pokupio podatke o indeksu kolone i vrste ćelije iz argumenata događaja tj. iz EventArgs:
Code:
float pom = float.Parse(Convert.ToString(dataGridView1[e.ColumnIndex, e.RowIndex].Value));
Uopšte mi nije jasno kako da rešim problem. Mogao bi da lepo preskočim ovu validaciju prilikom izlaska iz ćelije i da to obavim ručno preko pritiska na dugme ali to nije rešenje.
Još da navedem da mi takođe u nastavku javlja "Input string is not in the correct format" kad pokušam da obradim vrednost ćelije koja treba da bude u okviru nekih granica, dok dok sam radio sa pritiskom na dugme sve je radilo dobro. Reč je o sledećem kodu koji treba da promeni boju ćelije u kojoj je vrednost van opsega. Nadam se da je jasno zbog čega bi elegantnije rešenje bilo preko validacije ćelije jer bi priliikom svakog napuštanja ćelije ona bila označena da je van opsega a ovako bi morao da radim za sve odjednom i da nateram korisnika da pritiska dugme, što je suvišno
Code:
if ((Convert.ToSingle(dataGridView1[e.ColumnIndex, e.RowIndex].Value) < Convert.ToSingle(dataGridView1[2, e.RowIndex].Value)) | (Convert.ToSingle(dataGridView1[e.ColumnIndex, e.RowIndex].Value) > Convert.ToSingle(dataGridView1[3, e.RowIndex].Value)))
{
dataGridView1[e.ColumnIndex, e.RowIndex].Style.BackColor = Color.RosyBrown;
}
Samo da ponovim da ovaj kod radi bez problema kad ga smestim u kod funkcije koja obrađuje pritisnuto dugme (naravno da ovo e.RowIndex i sl. je zamenjeno odgovarajućim)
Možeš li mi pomoći?
Unapred HVALA!
So much the better, we shall fight in the shade!