PDA

مشاهده نسخه کامل : دو سوال در مورد ليست ويو و مقادير تكست باكس



softsoft
12-11-10, 16:51
ما دوتا لیست ویو با نام های lvWallPapers و ListView_thumb داریم . و دو تا دکمه و یه openfiledialog با نام dialogWallPapers و یه imagelist با نام ImageList1 .حالا این کد ها رو در قسمت لود فرم قرار بدید :
Dim columnheader As ColumnHeader dialogWallPapers.Filter = "Picture Files |*.bmp;*.jpg;*.gif;*.png;*.tif" dialogWallPapers.Title = "اضافه کردن تصویر"Me.lvWallPapers.View = View.Details Me.lvWallPapers.FullRowSelect = True ' Create column headers for the data. columnheader = New ColumnHeader columnheader.Text = "کاغذ دیواری" columnheader.Width = 150 Me.lvWallPapers.Columns.Add(columnheader) columnheader = New ColumnHeader columnheader.Text = "حالت قرارگیری" columnheader.Width = 100 Me.lvWallPapers.Columns.Add(columnheader) columnheader = New ColumnHeader columnheader.Text = "مسیر" columnheader.Width = 400 Me.lvWallPapers.Columns.Add(columnheader) ' This last column is used to store the picture's wallpaper status. columnheader = New ColumnHeader columnheader.Text = "" columnheader.Width = 0 Me.lvWallPapers.Columns.Add(columnheader)کد دکمه ی اولی برای قرار گرفتن تعدادی آدرس عکس در lvWallPapers :
Dim lviewitem As ListViewItem dialogWallPapers.FileName = Nothing dialogWallPapers.ShowDialog() Dim file As String For Each file In dialogWallPapers.FileNames If dialogWallPapers.FileName Nothing Then Dim fi As New FileInfo(file) lviewitem = New ListViewItem(fi.Name) lviewitem.SubItems.Add("Stretched") lviewitem.SubItems.Add(file) lviewitem.SubItems.Add("False") Me.lvWallPapers.Items.Add(lviewitem) fi = Nothing SaveList() End If Next fileکد دکمه دوم برای ایجاد حالت thumb در ListView_thumb :
ListView_thumb.Items.Clear() For i As Integer = 0 To lvWallPapers.Items.Count - 1 ListView_thumb.Items.Add(lvWallPapers.Items(i).Tex t) ListView_thumb.Items(i).ImageIndex = i ListView_thumb.Items(i).ToolTipText = lvWallPapers.Items(i).SubItems(2).Text Try ImageList1.Images.Add(Image.FromFile(lvWallPapers. Items(i).SubItems(2).Text)) Catch End Try ListView_thumb.LargeImageList = ImageList1 Nextبا این کد میشه تصاویر درون لیت ویو اولی رو به صورت Thumb در لیست ویو دومی دید . روش خوبی ولی به شرطی که تعداد آیتم ها در لیست ویو اول کم باشه و اگه تعداد آیتم ها زیاد باشه باید خیلی صبر کرد . من میخوام وقتی روی دکمه ی دومی کلیک میکنم (دکمه ای که حالت thumb رو درست میکنه ) یه پنجره کوچیک باز بشه و توش یه پروگرس بار باشه که نشون بده چقدر دیگه مونده تا حالت thumb و لود عکس ها طول می کشه و یه دکمه که اگه حوصلمون سر رفت بطونیم عملیات رو Cancle کنیم و دیگه نمونیم . ممنون میشم اگه کمکم کنید .البته من این طور که فهمیدم میشه از Threadها استفاده کرد . اگه درست فهمیده باشم . اگه نه که خوب یه روش بهتر بگید .یه سوال دیگه هم دارم اونم اینه که نمیشه فاصله بین آیتم های ListView_thumb رو کم کرد تا در یه سطر تعداد بیشتری عکس دیده بشه ؟و اگه خاصیت checkbox لیست ویویی رو که عکس ها رو نشون میده رو برابر True قرار بدیم کنار هر عکس یه چک باکس قرار میگیره . چه جوری میشه کاری کرد که وقتی رو دکمه کلیک می کنیم اون خونه هایی که چک باکسشون تیک خورده حذف بشن . هم آیتم های لیست باکس اول و هم دوم . سوال دوم : ما 9 تا تکست باکس روی فرم داریم . و من میخوام وقتی عددی رو توی هر کدوم از تکست باکس ها درج می کنیم بتونیم چک کنیم که آیا این عدد در تکست باکس های دیگه هست یا نه . اگه بود رنگ اون دوتا یا اون تکست باکس هایی که عدد یکسان دارند قرمز بشه و در غیر این صورت رنگشون سفید .

ravegoat
16-11-10, 17:46
به دليل مشغله اي كه دارم خلاصه به سوالتتون جواب مي دم:



براي ايجاد يه نوار پيشرفت بايد مقدار ماكزيمم نوار رو برابر با تعداد عكس ها قرار بديد و در حلقه اي كه اينجا گذاشتيد بايد Vaule نوار پيشرفت رو يكي يكي زياد كنيد.
براي لغو عمليات هاي حلقه (Break) بايد از Threading استفاده كنيد يعني حلقه رو در يك تابع قرار بديد و اون تابع رو به يك ريسمان متصل كنيد. قكر كنم نمونه هايي ازش اينجا باشه.
براي تغيير اندازه ي Thumb ها بايد عكس ها رو وارد يه ImageList با اندازه دلخواه كنيد و بعد اون ليست رو به ListView نسبت بديد. بازم فكر كنم نمونه اش رو گذاشتم.
براي تشخيص آيتم هاي چك شده هم مي تونيد از رويدادش استفاده كنيد و هم ميتونيد روي دكمه اجراي عمليات حذف يه دكمه بذاريد و خاصيت Checked آيتم ها رو چك كنيد. براي عناصري با مقدار True مي تونيد عمل Remove رو اعمال كنيد.
بايد با يه Add Handler اول رويداد تغيير تكست همه تكست باكس رو با هم كنترل كنيد. در صورت رخ دادن اين رويداد بايد با يه حلقه مقادير ساير TextBox ها رو بخونيد. با يه شرط مقادير رو چك كنيد و در صورت درست بودن شرط تكراري بودن مقدار، خاصيت BackColor جعبه متن هاي با مقادير برابر رو Red كنيد.

softsoft
18-11-10, 10:50
خيلبي ممنون از توضيحاتتون.
هنوز نخوندم تا پيلده سازي شون كنم . ولي ممنون ميشم كه به صورت كد پاسخ رو بذاري .چون ممكنه نتونم پياده سازي كنمشون

softsoft
20-11-10, 22:13
سلام
من هرچی جستو جو کردم چیزی توی فروم ر مورد Threading پیدا نکردم.
ممنون میشم اگه جواب رو به صورت کد بزارید یا آدرس اون صفحه ها رو بزارید .

ravegoat
26-11-10, 10:07
سلام
من هرچی جستو جو کردم چیزی توی فروم ر مورد Threading پیدا نکردم.
ممنون میشم اگه جواب رو به صورت کد بزارید یا آدرس اون صفحه ها رو بزارید .

سلام!

بهتون حق ميدم، با جست و جو كردن خيلي پيدا كردنش سخته...!

بفرماييد اين هم لينكش (Only the registered members can see the link) .:great:

متاسفانه خيلي خيلي خيلي كار رو سرم ريخته...اگه فرصت كردم سورس ها رو براتون مي نويسم.:wink:

موفق باشيد
آرمين:give_rose:

softsoft
27-11-10, 23:16
ممنون .
فایل رو نگاه کردم ولی نتونستم threading رو پیاده سازی کنم.ممنون میشم اگه خودتون سورسشو بذارید .

softsoft
02-12-10, 10:32
ممنون ميشم هرچه زودتر كمكم كنيد . آخه فوريه

softsoft
11-12-10, 21:28
دیگه نمیخواد . زحمت نکشید .یجوری گیرش آوردم.:cool: