PDA

View Full Version : اضافه کردن آیتم به لیست باکس



نسرین2000
شنبه 28 دی 1392, 10:15 صبح
در فرم 5 چند تا تکس باکس دارم و یک دکمه ok
می خوام هر کدوم ار چک باکس هام که تیک خوردند به لیست list box اضافه بشن . ( لیست باکس در فرم 1 قرار دارد )
کد زیر را می نویسم ، اصلا ارور نمی دهد ولی عملا اجرا نمی شود ؟
Me.Close()
For Each Check As CheckBox In Controls.OfType(Of CheckBox)()
If Check.Checked = True Then
Form1.ListBox.Items.Add(Check.Text)
End If
Next
Form1.Show()

sagggad
شنبه 28 دی 1392, 10:27 صبح
با عرض سلام
این کد به هیچ وجه یک کد منطقی برای چک کردن چک باکس نیست
کدهاتون رو در کجا و در چه رودادی نوشتید؟
باز هم اگر میخواهید از همین روش استفاده کنید یک تایمر روی فرم قرار بدید (Enabled = True)
حالا در رویداد Tick تایمر این کدها رو بویسید:

Form1.ListBox1.Items.Clear()
For Each Check As CheckBox In Me.Controls
If TypeOf Check Is CheckBox Then
If Check.Checked = True Then
Form1.ListBox1.Items.Add(Check.Text)
End If
End If
Next
Form1.Show()

نسرین2000
شنبه 28 دی 1392, 10:35 صبح
کد ها رو در رویداد کلیک button گذاشتم .
23 تا چک باکس دارم اگه بخوام یکی یکی چک کنم که آیا true هستند یا نه خیلی وقت می بره .

sagggad
شنبه 28 دی 1392, 10:36 صبح
کدهاتون اشتباه بود از این ها استفاده کنید:

Form1.ListBox1.Items.Clear()
For Each Check As CheckBox In Me.Controls
If TypeOf Check Is CheckBox Then
If Check.Checked = True Then
Form1.ListBox1.Items.Add(Check.Text)
End If
End If
Next
Form1.Show()

نسرین2000
شنبه 28 دی 1392, 11:05 صبح
آقا سجاد چون تو فرمم یک button هم دارم ارور زیر را می گیرد .
Unable to cast object of type 'System.Windows.Forms.Button' to type 'System.Windows.Forms.CheckBox'.
یعنی نمی تونه نوع آبجکت باتن رو به چک باکس تبدیل کنه .
حالا چیکار کنم ؟

sagggad
شنبه 28 دی 1392, 11:12 صبح
سورس رو بذارید
نباید این ارور رو بده اصلا ربطی نداره

نسرین2000
شنبه 28 دی 1392, 11:14 صبح
سورس چون حجمش زیاده فکر نکنم آپلود بشه ؟

sagggad
شنبه 28 دی 1392, 12:06 عصر
خوب من که این مشکل رو ندارم
شما تو یه سایت دیگه آپ کن لینک بذار اینجا

نسرین2000
دوشنبه 30 دی 1392, 08:51 صبح
آقا سجاد لینک رو براتون گذاشتم

sagggad
دوشنبه 30 دی 1392, 09:04 صبح
بله
روی سیستم من از دیتابیس ایراد میگرفت و اون رو پیدا نمیکرد
شما یک دکمه Ok داخل فرم5 دارید..
دقیقا همین کدها رو (بدون هیچ تفاوتی) داخل رویداد کلیک اون کپی کنید احتمال قوی درست میشه:

Form1.ListBox.Items.Clear()
For Each Check As CheckBox In Me.Controls
If TypeOf Check Is CheckBox Then
If Check.Checked = True Then
Form1.ListBox.Items.Add(Check.Text)
End If
End If
Next
Me.Hide()
Form1.Show()

راستی:
یک اشتباهی که شما دارید اینه که خیلی طراحی هاتون بی نظم هستش (قصدم فقط انتقاد هست)
یعنی اسم های اشیاء و این جورچیزها که باید بهش دقت بیشتری بشه
به عنوان مثال شما در Form1 یک لیست باکس دارید به اسم: ListBox :متعجب:
در حالی که اصلا این درست نیست که شما اسم یک آبجکت رو روی خودش قرار بدی مثلا باید بذارید :Lst1 ...
این موضوعات رو اگر دقت کنید مطمئنا هم سرعت و هم کیفیت کارتون بالا خواهد رفت
موفق باشید

نسرین2000
دوشنبه 30 دی 1392, 09:16 صبح
باز هم ارور قبلی رو گرفت:عصبانی++:
بی خیالش شدم
تک تک برای هر کدوم از چک باکس ها فرمول نوشتم:گیج:
حالا لطفا اگه می تونی در مورد هزینه هر شب اقامت که خصوصی برت توضیح دادم کمکم کن

sagggad
دوشنبه 30 دی 1392, 09:18 صبح
این توضیحتون بود:

تو فرم 5 هر کدوم از اتاقها با Ridio button های 1 تخته ، دو تخته ، سه تخته مشخص می شن
قیمت 1 تخته و 2 تخته و 3 تخته مشخصه
می خوام به ازای هر تعداد اتاق 1 تخته یا 2تخته و یا 3 تخته قیمت رو برام محاسبه کنه
مثلا اگه سه تا اتاق 1 تخته و 2 تا اتاق 2 تخته و 5 تا اتاق 3تخته انتخاب کرده باشیم قیمت می شه :

(3*560000) + (2*742000) + (5*9540000)

اما دوتا سوال اینجا پیش میاد :
1-قیمت ها رو کجا نشون بده؟
2-ممکنه قیمت ها عوض بشه؟

sagggad
دوشنبه 30 دی 1392, 09:26 صبح
بفرمایید الان متوجه اشکال اون کد شدم:
این رو کپی کنید درسته:

Form1.ListBox.Items.Clear()
For Each Check In Me.Controls
If TypeOf Check Is CheckBox Then
If Check.Checked = True Then
Form1.ListBox.Items.Add(Check.Text)
End If
End If
Next
Me.Hide()
Form1.Show()

saeedr22
دوشنبه 30 دی 1392, 09:47 صبح
این کار درست نیست که تو تایمر اینو چک کنین...تو event چک باکس ها چرا اینونمی فرستید.؟

sagggad
دوشنبه 30 دی 1392, 09:50 صبح
تو تایمر نیست دوست عزیز با یک باتون که برای خروج از فرم استفاده میشه این دستورات نیز اجرا میشه:لبخندساده:

نسرین2000
دوشنبه 30 دی 1392, 10:08 صبح
قیمت ها ممکنه عوض بشه ولی من فعلا برای امسال ثابت در نظر می گیرم
قیمت یک شب به همون روشی که گفتم باید در تکس باکس هزینه هر شب اسکان ( در فرم 1 ) وارد بشه و در آخر هم تعداد شب های اقامت ضربدر هزینه هر شب می شه هزینه قابل پرداخت

sagggad
دوشنبه 30 دی 1392, 10:17 صبح
الان مشکلتون با چک باکس ها درست شد؟

behrooz69
دوشنبه 30 دی 1392, 20:32 عصر
واسه قیمت شما بیا اول یه فرم درست کن به ام قیمت دهی اتاق ها که فقط مختص مدیر باشه .

بعد وقتی قیمت هرکدوم رو وارد کرد دکمه ثبت بذار و اونو تو دیتابیس ذخیره کن .

حالا تو فرمت که حالا چک باکس یا رادیو باتن میذاری وقتی کلیک کنه روش شما بیا از دیتابیس قیمت اتاق هارو بخون .

بعدش قیمت هایی که گرفتی رو Sum کن و بریز تو یه فیلد تو دیتابیس که بعدا بتونی ازش Logبگیری که کدوم مشتری چه اتاقی و چند شب مونده .

behrooz69
دوشنبه 30 دی 1392, 20:41 عصر
واسه قیمت شما بیا اول یه فرم درست کن به ام قیمت دهی اتاق ها که فقط مختص مدیر باشه .

بعد وقتی قیمت هرکدوم رو وارد کرد دکمه ثبت بذار و اونو تو دیتابیس ذخیره کن .

حالا تو فرمت که حالا چک باکس یا رادیو باتن میذاری وقتی کلیک کنه روش شما بیا از دیتابیس قیمت اتاق هارو بخون .

بعدش قیمت هایی که گرفتی رو Sum کن و بریز تو یه فیلد تو دیتابیس که بعدا بتونی ازش Logبگیری که کدوم مشتری چه اتاقی و چند شب مونده .