PDA

View Full Version : فوكوس درسلول ديتاگريد



sara_traveler
دوشنبه 03 آبان 1389, 21:38 عصر
دوستان من مي خوام وقتي اطلاعات در ديتا گريد اشتباه وارد ميشه بعد بررسي دوباره فوكوس تو همون خونه قرار بگيره و نتونه بري سلول بعدي
اما با اين كد جواب نميده و رد ميشه
datagridview.rows[0].cele[0].selected=true

mahdi87_gh
دوشنبه 03 آبان 1389, 21:44 عصر
در رویداد CellValidating داده وارد شده رو بررسی کنید و اگر مشکل داشت متن خطا رو ست کنید. و در رویداد CellEndEdit متن خطا رو پاک کنید. اینم یه نمونه

void dataGridView1_CellValidating(object sender,
DataGridViewCellValidatingEventArgs e){
if (dataGridView1.Columns[e.ColumnIndex].Name == "columnname") {
if (e.FormattedValue == null &&
(! Convert.ToDouble(e.FormattedValue) > 0 ) {
dataGridView1.Rows[e.RowIndex].ErrorText =
"value has to be greater than 0"; e.Cancel = true;
} }}

void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e){
dataGridView1.Rows[e.RowIndex].ErrorText = String.Empty;}

sara_traveler
دوشنبه 03 آبان 1389, 22:42 عصر
ممنون
الان با اين كد وقتي اشتباه بده فوكوس از اون خونه عبور نمي كنه؟
و در صورت صحيح بودن رد ميشه؟

mahdi87_gh
دوشنبه 03 آبان 1389, 23:24 عصر
بله. شما در رویداد Validating باید صحت اطلاعات رو بررسی کنید و در صورت وجود اشتباه e.cancel=true کنید