PDA

View Full Version : یه مشکل در نوشتن برنامه با زبان #c در vs2005



ali_yousefian19
پنج شنبه 03 فروردین 1385, 12:28 عصر
سلام خسته نباشین
من دارم یک برنامه مینویسم که تحت ویندور هست و با ربان #c
در برنامه ی من 64 imagebox هست که با اسمشان بترتیب از ایمیج 1 تا 64 هست
در این برنامه با زدن یک دکمه ی بخصوص - در یکی از ایمیج ها عکس گذاشته میشه و میرود سر عکس بعدی وعکس بعدی و ....
من یک شمارنده گذاشتم که با هر بار کلیک روی دکمه یکی به شمارنده اضافه میشود و میفهمم الان با ایمیج i (عدد شمارنده) کار دارم.
پس من در هر لحظه میدانم که با ایمیج آی کار دارم پس میخواستم از دستور زیر استفاده کنم که نمیشود.


int a;
string b,c;
a=i;
b=Convert.ToString(a);
c = "pictureBox" + Convert.ToString(a);
c.ImageLocation="F:\\personal-me\\project\\c++\\3.gif";//کار نمیدهد
//(pictureBox + Convert.ToString(a)).ImageLocation = "F:\\personal-me\\project\\c++\\3.gif";//کار نمیدهد

ممنون میشم کمک کنین.
یه سوال دیگه هم داشتم که میخواستم بدونم در زبان سی چطودی میشود درایوی را که برنامه رویش در حال اجراست را فهمید
همینطور که در کدهای بالا میبینید برای آدرس عکس ها ار آدرس استاتیم استفاده کردم که اگر برنامه را روی سیستم دیگه اجرا کنیم جواب نمیگیرم
(من عکسهای مورد نظرم دا در فولدر ی ریختم که برنامه را اوونجا ذخیره میکند)
اگه میشود یک مثال بزنید
با تشکر

ali_yousefian19
جمعه 04 فروردین 1385, 23:25 عصر
کسی جواب نمیده
نکنه سوالم بی مورد بوده یا مربوط به اینجا نمیشه؟

محمد میرمصطفی
شنبه 05 فروردین 1385, 09:57 صبح
وایستا برادر من. حولی؟

محمد میرمصطفی
شنبه 05 فروردین 1385, 10:02 صبح
در مورد سوال اولت پاسخ سوالت (اگه درست فهمیده باشم) اینه که میتونی با loop زدن روی Controls اون Image مورد نظرتو پبدا کنی. گرچه من این راه رو نمی‏پسندم. و ترجیح می‏دم از ImageList استفاده کنم.

محمد میرمصطفی
شنبه 05 فروردین 1385, 10:12 صبح
سوال دوم:

System.IO.FileInfo file = new System.IO.FileInfo(Application.StartupPath);
MessageBox.Show(file.DirectoryName.Substring(0, 2));

ali_yousefian19
شنبه 05 فروردین 1385, 15:08 عصر
مرسی آقا
فقط میشه جواب اولتوم را کامل کنین(یعنی چطوری بین کنترلها loop کنم)
فکر کنم با دستور for each بشه ولی بخاطر اینکه msdn ندارم اصلا طریق استفادش را نمیدونم
بازم مرسی

محمد میرمصطفی
یک شنبه 06 فروردین 1385, 11:14 صبح
به چشم

foreach (Control CurrControl in this.Controls) if (CurrControl is TextBox) (CurrControl as TextBox).Text = "Hello";

ali_yousefian19
یک شنبه 06 فروردین 1385, 13:58 عصر
دستتون درد نکنه واقعا لطف کردین

m-heidari
چهارشنبه 09 فروردین 1385, 03:38 صبح
البته به نظر بنده ImageList برای این کار زیاد جالب نیست چون معمولا برای عکس های کوچک یعنی عکس هایی با اندازه کوچک مناسبتر هست به نظر من اگه این عکس ها درون یک Resource ریخته بشه بهتره

ali_yousefian19
چهارشنبه 09 فروردین 1385, 20:40 عصر
سلام و خسته نباشین
متاسفانه بلد نبودم درست با for each کار کنم و برای همین مشکلم حل نشد
حالا مسله را برای شما تشریح میکنم ببینید میشه کاریش کرد و اگه با for each میشه حلش کرد لظفا کدش را بنویسید
در تمام picture box ها بگرد تا به picture box ی برسی که اسمش picture box 88 هست و در اوون این عکس را قرار بده
شرمنده اگه وقتتون را گرفتم
اگه راه دیگه ای جز for each هم میشه در اوون مورد هم من را راهنمایی کنید
آقای حیدری از کمکتون ممنونم ولی دقیقا نمیدونم این مشکلم با resource یا imagelist ها حل میشه یا نه.
با تشکر

محمد میرمصطفی
پنج شنبه 10 فروردین 1385, 02:46 صبح
foreach (Control CurrControl in this.Controls)
if (CurrControl is TextBox)
{
TextBox TextBox = (CurrControl as TextBox);
if (TextBox.Name.Equals("TextBox_88")) TextBox.Text = "Hello";
}

ali_yousefian19
جمعه 11 فروردین 1385, 22:12 عصر
ممنون اما بازم نتونستم ازش استفاده کنم شاید به خاطر iq باشه به هر حال از شما خیلی خیلی ممنونم

محمد میرمصطفی
سه شنبه 15 فروردین 1385, 19:54 عصر
والله چی بگم؟