1 ضمیمه
مشکل با ValueChanged و TextChanged
سلام.
دارم برای ویندوزفون برنامه می نویسم.
وقتی می خواهم با ValueChanged یک اسلایدر مقداری رو در یک متغیر بریزم پیغام زیر رو بهم میده:
private void sldTi_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
lbltimer.Text = Convert.ToString(sldTi.Value);
}
Error:
ضمیمه 131941
غیر از این برای هر کدی که می خوام بنوسم که مثلا با تغییر مقداری در تکست باکس کاری انجام دهد باز همین پیغام رو میگیرم.
لطفا راهنمایی بفرمایید.
نقل قول: مشکل با ValueChanged و TextChanged
ولیو مقدار داره؟ ظاهر ناله واسه همین exception میده
نقل قول: مشکل با ValueChanged و TextChanged
نقل قول:
نوشته شده توسط
winner1
ولیو مقدار داره؟ ظاهر ناله واسه همین exception میده
بله مقدار داره!
اسلاید بدون مقدار نمیشه! یا 0 هست یا اعداد بزرگتر. من در خصوصیتها مقدار پیشفرض رو هم روی 30 قرار داده ام.
این خطا رو برای کد تغییر متن هم بهم میده. مثلا اگر تکست داخل نکست باکسم تغییر کند لیبل 1 هم تغییر کند همین پیغام رو دریافت می کنم.
نقل قول: مشکل با ValueChanged و TextChanged
خب مشکلم حل شد.
کافیه از کد زیر استفاده کنید:
private void sldTi_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e)
{
double i;
if (sldTi != null)
{
i = (double)sldTi.Value;
lbltimer.Text = Convert.ToString(i);
}
}
نقل قول: مشکل با ValueChanged و TextChanged
نیازی به این کار نبود، همون شرطی که گذاشتی کافی بود. تابع ToString رو همه ی شی ها دارن و نیازی به استفاده Convert.ToString نبود.
if (sldTi != null)
lbltimer.Text = sldTi.Value.ToString();
دلیله خطا هم اینه که هنوز کنترل های صفحه موردنظرت Intialize نشده برای همین هم کدی که نوشتی باعث Exception میشه.
نقل قول: مشکل با ValueChanged و TextChanged
نقل قول:
نوشته شده توسط
ramtinak
نیازی به این کار نبود، همون شرطی که گذاشتی کافی بود. تابع ToString رو همه ی شی ها دارن و نیازی به استفاده Convert.ToString نبود.
if (sldTi != null)
lbltimer.Text = sldTi.Value.ToString();
دلیله خطا هم اینه که هنوز کنترل های صفحه موردنظرت Intialize نشده برای همین هم کدی که نوشتی باعث Exception میشه.
چنین دستوری هم باز ارور دریافت کردم!
آخرش باید متغیر رو در داخل خود بدنه if تعریف می کردم که حل شد.
در مورد خط آخر ممنون میشم بیشتر توضیح بدید.
با تشکر
نقل قول: مشکل با ValueChanged و TextChanged
منظورتون از خط آخر چیه؟ کلا دو خط من نوشتم، اگه منظورت اینه:
lbltimer.Text = sldTi.Value.ToString();
که میاد مقدار فعلیه اسلایدرت که از نوع double هست رو به رشته یا string تبدیل میکنه. همونطور که بالا هم گفتم تمامی شی های سی شارپ این کد رو دارن.
فکر کنم شما سیلورلایت کار میکنید.
اگه ویندوزفون نسخه Universal یا WinRT میخواهید انجام بدید، توی کتاب برنامه نویسی ویندوزفون 8.1 که ساختم، یک درسی داره که آموزش پلیر ساختن رو داره که با استفاده از اسلایدر و ProgressBar کارها رو پیش میبرم( البته ناگفته نمونه که Gesture برای عقب جلو کردن فیلم با کشیدن انگشت روی صفحه یا تنظیم صدا با پایین بالا کردن با کشیدن انگشت روی صفحه و پایین بالا کردن برای تنظیم روشنایی هم در این درس آموزش داده میشه)