PDA

View Full Version : مشکل در انتساب یک مقدار به عنصری مثل textbox در هر بار اجرای حلقه



xsbehx
یک شنبه 11 مرداد 1394, 20:39 عصر
سلام
یک حلقه دارم بصورت زیر


for (int i = 0; i <= 10; i++)
{
TextBox1.Text = i.ToString();
}


وقتی breackpoint می زارم و مرحله به مرحله اجرا می کنم می بینم که اول 10 بار حلقه اجرا می شه بعد نتیجه داخل textbox یکدفعه نمایش داده می شه
در صورتی که من می خوام هر بار که به این خط رسید :

TextBox1.Text = i.ToString();
مقدار textBox تغییر کنه تا بتونم با هر بار تغییر مقدار Textbox کاری رو انجام بدم

mamali92
دوشنبه 12 مرداد 1394, 00:16 صبح
سلام دوست عزیز؛ حلقه ای که داری به این شکل کار می کنه که هر بار که اجرا بشه مقدار i رو به تکست باکس میده و دفعه بعد که اجرا بشه مقدار جدید متغیر رو قرار میده و مقدار قبلی تکست باکس پاک میشه
پیشنهاد می کنم اگه مقادیر i ثابته یعنی بیشتر از 10 تا نمیشه یه آرایه بسازی و بعد مقادیرت رو تویه اندیس های آرایه قرار بدی تقریبا یه چیزی شبیه این:


string[] s= new string[11];
for (int i = 0; i <= 10; i++)
{
s[i] = i.ToString();
}

اینجوری مقادیرت رو در جایی ذخیره می کنی
حالا می مونه نمایش دادنشون که دو راه داری. یکی اینه که به هر تعدادی که مقدار داری یه تکست باکس درست کنی و بعد به صورت دستی و بدون استفاده از حلقه بهش مقدار بدی که کار زیاد جالبی نیست. یه راه دیگش اینه که از ListBox استفاده کنی تا بتونی از حلقه استفاده کنی

xsbehx
دوشنبه 12 مرداد 1394, 01:36 صبح
خیلی خیلی ممنونم ولی منظورم من این نبود :|
مشکل از سوال من بود :(
من می خواستم کاری کنم که تو هر بار اجرای حلقه مقدار مورد نظر ریخته بشه داخل Textbox و اصلا برام مهم نبود که مقدار قبلی بمونه یا پاک بشه بلکه می خواستم هر بار که مقدار textbox تغییر می کنه، بلافاصله نتیجه تو سمت کلاینت نمایش داده بشه و مثلا رویداد change سمت کلاینت فعال بشه. یعنی 10 بار سمت کلاینت رویداد change داشته باشیم ولی برای من یکبار اتفاق می افتاد اونهم انتهای کار
اصلا حواسم نبود که اینجا تو asp مثل سی شارپ نیست. اینجا چیزی به اسم کلاینت و سرور وجود داره
پس تا وقتی پردازشی تو سمت سرور هست (حلقه مورد نظر) نتیجه به سمت کلاینت برگشت داده نمی شه
پس نمی شه انتظار داشت که رویداد change برای textbox مورد نظر تو سمت کلاینت، 10 بار اتفاق بیافته. بلکه یکبار اونهم وقتی نتیجه برگشت داده شد، اتفاق خواهد افتاد.


مشکل رو جوره دیگه ای رفع کردم
در هر صورت ممنون بابت وقتی که گذاشتی ^_^