با سلام:
چگونه می توانم اگر مقدار وارد شده در یک سلول دیتاگرید با مقدار یک Textbox مساوی نبود به سلول دیگر نروم و در همان سلول بمانم؟در چه Event ای باید کد مربوطه را بنویسم؟
لطفا مرا راهنمایی کنید
با تشکر و احترام فراوان
با سلام:
چگونه می توانم اگر مقدار وارد شده در یک سلول دیتاگرید با مقدار یک Textbox مساوی نبود به سلول دیگر نروم و در همان سلول بمانم؟در چه Event ای باید کد مربوطه را بنویسم؟
لطفا مرا راهنمایی کنید
با تشکر و احترام فراوان
cell leave
این رویداد برای این منظور مناسب نیست
از رویداد Cellvalidating استفاده کنید:
0و0 بیانگر سلول اول از سطر اول می باشد. می توانید مقادیر مربوط به سلول وسطر مورد نظرتون را قرار دهید.علاوه بر این می توانید از آرگومان های این رویداد استفاده کنید.
dataGridView1.EndEdit();
e.Cancel = dataGridView1[0, 0].Value.ToString() != textBox1.Text ? true : false;
موفق باشید./
مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084
وب سایت : http://www.mkiani.ir
پست الکترونیک : mkiani3000@gmail.com
موفق و پیروز باشید.
مهدی کیانی
سلام
null بودن مقدار value را چک کنید./
مجموعه آموزشی Asp.Net Core Mvc کاملا به زبان فارسی(21 ماژول و 15 ساعت فیلم آموزشی همراه با سورس کامل تمرینات و پروژه عملی انجام شده در طول آموزشی)
مشاهده جزئیات در آدرس http://www.mkiani.ir/blog/content/53084
وب سایت : http://www.mkiani.ir
پست الکترونیک : mkiani3000@gmail.com
موفق و پیروز باشید.
مهدی کیانی
با سلام:
من این کد را با توجه به راهنمایی شما استفاده کردم اما این کد بعضی وقتها جواب میده ولی بعضی وقتا جواب نمیده.
علت چیست؟
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value != null)
{
dataGridView1.EndEdit();
e.Cancel = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() != textBox1.Text ? true : false;
}
}
لطفا مرا راهنمایی کنید
با تشکر و احترام فراوان
سلام دوست عزیز من با کد جناب کیانی به مشکلی بر نخوردم
فکر کنم اگهdataGridView1.EndEdit();رو قبل از شرط قرار بدی مشکلی نداشته باشی
آخرین ویرایش به وسیله Mohsen229266 : دوشنبه 08 تیر 1388 در 19:36 عصر
باسلام:
من کد را هم به قبل از شرط به صورت زیرمنتقل کردم:
اما هر مقداری که در TextBox وارد می کنم چه مساوی باشد و چه مساوی نباشد به سلول بعد منتقل نمی شود .بعضی مواقع هم هر مقداری که در TextBox وارد می کنم چه مساوی باشد و چه مساوی نباشد به سلول بعد منتقل می شود در واقع انگار این کد کاربردی ندارد
private void dataGridView1_CellValidating(object sender, DataGridViewCellValidatingEventArgs e)
{
dataGridView1.EndEdit();
if (dataGridView1.Rows[e.RowIndex].Cells[0].Value != null)
{
e.Cancel = dataGridView1.Rows[e.RowIndex].Cells[0].Value.ToString() != textBox1.Text ? true : false;
}
}
با تشکر و احترام فراوان
این برنامه رو ببین واقعا کار میکنه
البته پروپرتی AutoValidate فرم رو به Disable تغییر بدید
آخرین ویرایش به وسیله Mohsen229266 : شنبه 31 مرداد 1388 در 17:22 عصر