PDA

View Full Version : سوال: چگونه اسکرول درست کنم؟



f.beigirad
شنبه 02 دی 1391, 15:37 عصر
با سلام.

من حدود 90تا عکس کوچیک دارم.میخوام اینارو به صورت زیر نشون بدم.
http://s3.picofile.com/file/7593277632/barnamenevis.jpg

یعنی میخوام اینجوری اسکرول شن.

البته یه توضیحات هم زیرشون هست.

بیزحمت بگین من باید به تعداد عکسایی که میخوام نشون بدم باید PictureBox بذارم؟
و همچنین به ازای توضیحات زیر هر عکس باید Label بذارم؟

من چکار کنم؟

لازمه بگم من تازه کارم.

پیشاپیش از پاسخ دهندگان از به این تاپیک ممنونم.

ali reza mansoori 2
شنبه 02 دی 1391, 16:43 عصر
کامپوننت GalleryControl در مجموعه DevExpress دقیقا همون چیزی هست که میخوای
اگر درباره این کامپوننت کمک خواستی در خدمتیم

ordebehesht
شنبه 02 دی 1391, 17:05 عصر
دوست من خود فرم در ویژال خاصیت اسکورال داره باید فعال کنی

ali reza mansoori 2
شنبه 02 دی 1391, 19:35 عصر
دوست من خود فرم در ویژال خاصیت اسکورال داره باید فعال کنی
درسته خود فرم خاصیت اسکرول داره ولی چیدن 90 تا عکس و لیبل هم وقت گیره هم خیلی فرم رو کند میکنه

Mahmoud.Afrad
شنبه 02 دی 1391, 23:17 عصر
از کنترل listView میتونید استفاده کنید.
یک imagelist به فرم اضافه کنید و اگر عکسها ثابت هستند از طریق images از طریق پنجره properties و یا از طریق کدنویسی عکسهاتون رو اضافه کنید.
بعد این لیست عکس رو به لیست ویو نسبت بدید.
میتونید با اضافه کردن آیتم به لیست ویو به همراه اندیس عکس یک لیست مثل تصویری که قرار دادید داشته باشید. مثال:
افزودن تصاویر به لیست:

Image[] images = new Image[] { Image.FromFile(@"آدرس عکس 1"),
Image.FromFile(@"آدرس عکس 2")};

imageList1.Images.AddRange(images);
imageList1.ImageSize = new System.Drawing.Size(64, 64);

تنظیم کردن لیست ویو:

listView1.LargeImageList = imageList1;
listView1.View = View.LargeIcon;

listView1.Items.Add("item 1", 0);
listView1.Items.Add("item 2", 1);

f.beigirad
شنبه 02 دی 1391, 23:37 عصر
داداش حقیقتا خیلی تلاش کردم بفهمم چی میگی ولی نشد.

فقط دوخط اولو انجام دادم.
بقیشو متوجه نشدم.

ممنون میشم یکم موضوعو بیشتر برام باز کنی.
من تا حالا با این آبجکتا کار نکردم

Mahmoud.Afrad
یک شنبه 03 دی 1391, 07:38 صبح
اگر عکسها رو داخل یک پوشه بریزید راحت تر هستید.(در مثال زیر عکسها داخل پوشه pictures کنار فایل اجرایی قرار داره.)
در ابتدا یک imageList روی فرم قرار بدید.
در یک حلقه عکسها رو به imageList اضافه کرده و همچنین آیتمی رو به لیست ویو اضافه میکنیم(توی این مثال اسم عکس(fileInfo.Name ) زیر هر عکس نشون داده میشه که میتونید به جاش از هر متنی استفاده کرد).
در متد listView1.Items.Add ، پارامتر اول متنی هست که زیر عکس نمایش داده میشه و پارامتر دوم (k) اندیس اون عکس در imageList هست.

imageList1.ImageSize = new System.Drawing.Size(64, 64);
listView1.LargeImageList = imageList1;
listView1.View = View.LargeIcon;

string[] files = Directory.GetFiles(Application.StartupPath + "\\Pictures");

for (int k = 0; k < files.Length; k++)
{
Image thumbnailImage = Image.FromFile(files[k]);
imageList1.Images.Add(thumbnailImage);
FileInfo fileInfo = new FileInfo(files[k]);
listView1.Items.Add(fileInfo.Name, imageList1.Images.Count - 1);
}

f.beigirad
دوشنبه 04 دی 1391, 14:06 عصر
دوست عزیز خخیلی ممنونم.
میخواستم نظرتو راجع به FlowLoyalبدونم.با اونم میشه این کارو انجام داد؟

فرقش چیه؟
کدوم بهتره؟

f.beigirad
دوشنبه 04 دی 1391, 14:56 عصر
بازم سلام.من کد بالارو تست کردم.جواب داد.
احالا :
اسامی عکسا و همچنین نوشته ی زیر هر عکس از داخل دیتا بیس خونده میشه.
این کد جواب میده و اسامی عکسارو از دیتابیس میخونه و همچنین اسم هر عکس رو زیرش مینویسه.
imageList1.Images.Add(Image.FromFile(Application.S tartupPath + "\\pic\\" + dt.Rows[i]["SignName"].ToString()));
FileInfo fi = new FileInfo(Application.StartupPath + "\\pic\\" + dt.Rows[i]["SignName"].ToString());
listView1.Items.Add(fi.Name, i);
ولی وقتی که بجای اسم هر عکس میخوام نوشته های داخل دیتابیس رو نشون بده،نوشته هارو نشون میده اما نمیدونم چرا خود عکیارو نشون نمیده.
اینم کدم:
imageList1.Images.Add(Image.FromFile(Application.S tartupPath + "\\pic\\" + dt.Rows[i]["SignName"].ToString()));
listView1.Items.Add(dt.Rows[i]["SignDesc"].ToString());

اینم اسکرین شاتش:
http://s3.picofile.com/file/7595418167/barnamenevis2.jpg

f.beigirad
دوشنبه 04 دی 1391, 15:52 عصر
دوستان عزیز خواهشا نیگا کنید

Mahmoud.Afrad
دوشنبه 04 دی 1391, 17:57 عصر
دفت کنید. شما اندیس عکس رو مشخص نکردید:
listView1.Items.Add(dt.Rows[i]["SignDesc"].ToString(), imageList1.Images.Count - 1);

f.beigirad
دوشنبه 04 دی 1391, 22:16 عصر
واقعا ممنونم.

حالا یه سوال دیگه .

اگه بخوام عکسارو اینجوری نشون بده چکار کنم؟

یعنی عکسا داخل یه چارت باشن.مثل این :

http://s3.picofile.com/file/7595926769/barnamenevis3.jpg