1 ضمیمه
دسترسی به مقدار سلول دیتا گرید
سلام دوستان
من یه جا تو برنامه میخوام بگم موقع وارد کردن عدد تو سلول دیتا گرید اگر کار بر فلان کلید رو زد (مثلا+) مقدار رو ضرب در 1000 کن (در واقع عملکردش شبیه به کلید ستا صفر ماشین حساب
حالا مشکل کجاست
سلول خالیه و کار بر شروع میکنه عدد رو وارد میکنه مثلا123 حالا کلید تعریف شده رو میزنه متد فراخوانی و میخواد مقدار رو ضرب در 1000 کنه ولی خطا میده مقدار سلول نال هست(به خاطر اینکه هنوز ثبت نشده) باید چیکار کرد کدشم میزارم این زیر ببینید
private void DGSanad_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 43)
{
if (DGSanad.CurrentCell.ColumnIndex == DGSanad.Columns["BED"].Index || DGSanad.CurrentCell.ColumnIndex == DGSanad.Columns["BES"].Index)
{
DGSanad.CurrentCell.Value = (Convert.ToInt64(DGSanad.CurrentCell.Value.ToStrin g()) * 1000).ToString();
}
}
}
اینم تصویر خطاش
ضمیمه 149814
این در صورتی که سلول مقدار داره
کلا دیتا گرید وقتی تو سلول داری اطلاعات وارد میکنی(نه موقعه ای که سلکته) خیلی از متد ها درست جواب نمیده چرا؟؟؟
نقل قول: دسترسی به مقدار سلول دیتا گرید
نقل قول:
نوشته شده توسط
svhasvha
سلام دوستان
من یه جا تو برنامه میخوام بگم موقع وارد کردن عدد تو سلول دیتا گرید اگر کار بر فلان کلید رو زد (مثلا+) مقدار رو ضرب در 1000 کن (در واقع عملکردش شبیه به کلید ستا صفر ماشین حساب
حالا مشکل کجاست
سلول خالیه و کار بر شروع میکنه عدد رو وارد میکنه مثلا123 حالا کلید تعریف شده رو میزنه متد فراخوانی و میخواد مقدار رو ضرب در 1000 کنه ولی خطا میده مقدار سلول نال هست(به خاطر اینکه هنوز ثبت نشده) باید چیکار کرد کدشم میزارم این زیر ببینید
private void DGSanad_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == 43)
{
if (DGSanad.CurrentCell.ColumnIndex == DGSanad.Columns["BED"].Index || DGSanad.CurrentCell.ColumnIndex == DGSanad.Columns["BES"].Index)
{
DGSanad.CurrentCell.Value = (Convert.ToInt64(DGSanad.CurrentCell.Value.ToStrin g()) * 1000).ToString();
}
}
}
اینم تصویر خطاش
ضمیمه 149814
این در صورتی که سلول مقدار داره
کلا دیتا گرید وقتی تو سلول داری اطلاعات وارد میکنی(نه موقعه ای که سلکته) خیلی از متد ها درست جواب نمیده چرا؟؟؟
مشکل شما مربوط به نوع داده اون سلول هست.
https://docs.microsoft.com/en-us/dot...ramework-4.7.2
نقل قول: دسترسی به مقدار سلول دیتا گرید
نقل قول:
نوشته شده توسط
رامین مرادی
ممنون از وقتی که گذاشتین میشه یه خورده بیشترتوضیح بدین
نقل قول: دسترسی به مقدار سلول دیتا گرید
نقل قول:
نوشته شده توسط
svhasvha
ممنون از وقتی که گذاشتین میشه یه خورده بیشترتوضیح بدین
چون شما موقع ایجاد دیتا گریدتون و ستونهاش datatype همون int, string, ... اونو مشخص نمیکنید این خطا بوجود میاد. انگار شما تو اسکیو ال ستونی از نوع intدارید و به زور میخواید توش رشته بریزید. قبل ریختن مقدار جدید نوع ستونتون رو متناسب با داده هاتون در نظر بگیرید.
یه احتمال دیگه هم میدم بررسی کنید اون مقداری که دارید تبدیل میکنید به ToInt64 مقدارش نال نباشه
این رو هم قبل عملیات ضرب برسی کنید.
if(DGSanad.CurrentCell.Value !=DBNull.Value)