View Full Version : combo box چند انتخابی
vbsqlhadi1
دوشنبه 15 مرداد 1386, 08:13 صبح
با سلام خدمت دوستان
من می خواستم از یک کمبو استفاده کنم که حالت check box داشته باشد یعنی اینکه از داخل کمبو بتوانم چندین حالت را انتخاب کنم مانند list box اگر کسی در این مورد اطلاعاتی دارد لطفا راهنمایی کنید.
حامد مصافی
دوشنبه 15 مرداد 1386, 09:53 صبح
کامبوباکس برای یک انتخاب طراحی شده.
vbsqlhadi1
سه شنبه 16 مرداد 1386, 06:50 صبح
ولی من در یکی سری برنامه های کاربردی دیدم که از این چینی کمبو های استفاده می شود
MMR_1344
سه شنبه 16 مرداد 1386, 07:36 صبح
تو میتونی برای این کار هر کامبو باکس رو در یک فرم قرار بدی بدین ترتیب این کمبو باکسها مجزا از هم کار میکنن
MMR_1344
سه شنبه 16 مرداد 1386, 07:45 صبح
این هم مثالی برای نمونه
evilboy
سه شنبه 16 مرداد 1386, 08:13 صبح
دوست عزیز مطمئنی اینی که گذاشتی کامبو باکسه
MMR_1344
سه شنبه 16 مرداد 1386, 08:34 صبح
دوستان ببخشید من اشباه کردم پوزش مرا بپذیرید
حامد مصافی
سه شنبه 16 مرداد 1386, 10:21 صبح
ولی من در یکی سری برنامه های کاربردی دیدم که از این چینی کمبو های استفاده می شود
کجا دیدی؟
'
vbsqlhadi1
پنج شنبه 18 مرداد 1386, 07:33 صبح
در یک سری برنامه های کاربردی(حسابداری- آزمایشگاه و ...) البته مطمئن نیستم که با vb نوشته شده باشند.
vbsqlhadi1
پنج شنبه 18 مرداد 1386, 07:36 صبح
تو میتونی برای این کار هر کامبو باکس رو در یک فرم قرار بدی بدین ترتیب این کمبو باکسها مجزا از هم کار میکنن
دوست عزیز ممنون که جواب دادی ولی من در فرم ام کمبو های زیادی داریم و می خواهم که کاربر برای گزارش گیری بتواند چندین حالت را از یک کمبو انتخاب کند.
حامد مصافی
پنج شنبه 18 مرداد 1386, 09:21 صبح
هر چند به نظر من این که بخوای کاربر در کامبو باکس چند انتخاب داشته باشه بیهوده و منافی استاندارد به نظر می رسه، اما لطف کن و یک شات از چیزی که در برنامه حسابداری و آزمایشگاه دیدی بذار اینجا.
vbsqlhadi1
شنبه 20 مرداد 1386, 08:12 صبح
http://barnamenevis.org/forum/c:\send_int.jpg
این هم تصویری که خواسته بودید
vbsqlhadi1
شنبه 20 مرداد 1386, 08:16 صبح
در صورت مشاهده نکردن تصویر فایل آن را نیز برایتان فرستادم
حامد مصافی
شنبه 20 مرداد 1386, 12:21 عصر
این یک کنترل مجزاست.
هر چند استفاده از اون رو توصیه نمی کنم اما احتمالاً در کنار برنامه با پسوند ocx بتونید پیداش کنید.
senator_aka
شنبه 20 مرداد 1386, 12:29 عصر
البته اگر برنامه با vb نوشته شده باشه شما می توانیید ocx آن را کنار برنامه پیدا کنید در غیر این صورت فکر نکنم پیداش کنید
senator_aka
شنبه 20 مرداد 1386, 12:32 عصر
راستی من فکر کنم که خود شما هم می تونید یه ocx درست کنید که بتونه این کارا روو بکنه.کار زیاد سختی نیست.یه ocx که شامل یه تکست باکس با یه listbox هست.
البته اگر ocx را در کنار برنامه پیدا نکردید می تونید به فکر این کارم بیافتید
mahdyeh
شنبه 20 مرداد 1386, 15:36 عصر
سلام
وقت بخیر !
میتونید یک کمبو باکس طراحی کنید که داخلش چندتا چک باکس باشه تا کاربر بعد از باز کردن هر کمبو بتونه چند مورد رو انتخاب بکنه .
Mbt925
یک شنبه 21 مرداد 1386, 19:29 عصر
سلام
وقت بخیر !
میتونید یک کمبو باکس طراحی کنید که داخلش چندتا چک باکس باشه تا کاربر بعد از باز کردن هر کمبو بتونه چند مورد رو انتخاب بکنه .
به همین راحتیام که می گین نیست.
یه سری دردسرایی داره که تا کارو شروع نکنین باهاش مواجه نمی شین.
mahdyeh
دوشنبه 22 مرداد 1386, 10:23 صبح
سلام
بله خب ،
این فقط یک پیشنهاد بود .(راه حل)
vbsqlhadi1
سه شنبه 23 مرداد 1386, 11:29 صبح
ocx برنامه را پیدا نکردم فکر نمی کنم که برنامه با vb نوشته شده باشد سعی برای نوشتن ocx هم کردم ولی متاسفانه نتوانستم چیز درست حسابی در بیاورم اگر ممکن است راهنمای کنید
Mbt925
سه شنبه 23 مرداد 1386, 11:42 صبح
اگه دوستان واقعا لازم داشته باشن ، من می نویسمش ؟
MMR_1344
سه شنبه 23 مرداد 1386, 14:20 عصر
دوست عزیز فکر میکنم اگر بخواهی این کار رو بکنی باید یک فرم جدیدی بسازی که هر وقت کلیدDropDown زده شد اون فرم دومت که دارای اون مشخصاتی که میخوای باشه رو نشون بده البته این یک فکر ابتدائی که باید روی اون کار زیادی انجام داد
Mbt925
سه شنبه 23 مرداد 1386, 21:24 عصر
توی نوشتنش مشکلی ندارم دوسته عزیز.
فقط خواستم بدونم واقعا دوستان بهش نیاز دارن یا نه ؟
MMR_1344
چهارشنبه 24 مرداد 1386, 06:08 صبح
اگر بشه اون رو بنویسیم فکر نمیکنم چیز بدی باشه همه میتونن ازش اسفاده کنن
Mbt925
چهارشنبه 24 مرداد 1386, 17:46 عصر
پس من نوشتنشو شروع می کنم.
یکی دو روزه تمومش می کنم و میذارم اینجا تا دوستان نظر بدن و اشکالاتش گرفته بشه.
Mbt925
جمعه 26 مرداد 1386, 23:21 عصر
سلام دوستان.
تموم شد.
اینجا قرارش میدم اگه اشکالی داشت بگین تا اصلاح بشه.
خیلی بیشتر از اون چیزی که خودم فکر میکردم بهش قابلیت اضافه کردم.
توی تصویر یه جزئی از قابلیت هاشو می تونین ببینین.
دانلود (http://mbt925.persiangig.com/ActiveX/MBCheckCombo.rar)MBCheckCombo (http://mbt925.persiangig.com/ActiveX/MBCheckCombo.rar)
http://mbt925.persiangig.com/ActiveX/MBCheckComboScreeSho.png
برای نوشتن همچین کمبوباکسی به یه چک باکس خیلی سبک و سریع و با قابلیت ها خاص نیاز هست که برای همینم مجبور شدم یه چک باکس بنویسم که
با سورس اینجا قرارش میدیم ، تا اگه کسی خواست ازش استفاده کنه.
دانلود MBOCheckBox (http://mbt925.persiangig.com/ActiveX/MBOrdinalCheckBox%201.0.0.rar)
MMR_1344
شنبه 27 مرداد 1386, 13:45 عصر
دوست عزیز از لطفی که کردی ممنون من امروز اون رو گرفتم اگر بتونم اون رو امتحان میکنم
باز هم متشکرم
vbsqlhadi1
شنبه 10 شهریور 1386, 17:43 عصر
ببخشید ocx را که فرستاده بودید نه خودش کار می کند و نه با برنامه های دیگر کار می کند
از زحمات شما متشکرم پیام خطای زیر موقع اضافه کردن به فرم را می دهد
http://barnamenevis.org/forum/c:\error.jpg
vbsqlhadi1
پنج شنبه 15 شهریور 1386, 07:12 صبح
پیام خطا به صورت عکس پیوستی
vbsqlhadi1
شنبه 17 شهریور 1386, 21:58 عصر
دوست عزیز سلام
از فایلهای که فرستادی ممنوم برنامه به راه افتاد از زحماتی که برای نوشتن برنامه نوشتید بسیار ممنونم برنامه بسیار با ذوق و سلیقه فراوان و با حس گرافیکی و امکانات بالا طراحی شده است.
اگر جسارت نباشد میخواستم چند مورد کوچک را خدمتتان یادآوری کنم تا در صورت داشتن وقت و حوصله آنها را نیز در صورت امکان به برنامه اعمال کنید.
1. کمبو شما خاصیتی به نامه ItemData ندارد و همانطور که مستحضرید در برنامه نویسی این فیلد یک نقش کلیدی بازی می کند.
2. سرعت Additem نسبت به کمبو معمولی بسیار پایین است و در دادهای زیاد اصلا جوابگو نیست به عنوان مثال برای مقایسه سرعت کمبو شما با کمبو معمولی از دستور زیر استفاده کردم.
Private Sub Form_Load()
Dim i As Long
For i = 0 To 1000
CheckCombo1.AddItem "hadi" & i, Unchecked, vbRed, BlackC, True
CheckCombo1.AddItem "Ali" & i, Unchecked, vbRed, BlackC, True
CheckCombo1.AddItem "Fatemeh" & i, Unchecked, vbRed, BlackC, True
CheckCombo1.AddItem "Mina" & i, Unchecked, vbRed, BlackC, True
Next
MsgBox "combo1 finished"
For i = 0 To 1000
Combo1.AddItem "hadi" & i
Combo1.ItemData(i) = i
Combo1.AddItem "Ali" & i
Combo1.ItemData(i + 1) = i + 1
Combo1.AddItem "Fatemeh" & i
Combo1.ItemData(i + 2) = i + 2
Combo1.AddItem "Mina" & i
Combo1.ItemData(i + 3) = i + 3
Next
MsgBox "combo2 finished"
End Sub
در حقیقت دو کمبو (یکی کمبو شما و دیگری کمبو استاندارد) را در یک فرم استفاده کرده و در فرم load کدهای بالا نوشته شد. در مثال فوق مورد عجیب دیگری هم که بود این است که آخرین داده کمبو شما 108 می باشد در صورتی طبق کد باید آخری داده 1000 باشد که در کمبو معمولی نیز این حالت یعنی آخرین داده 1000 موجود می باشد.
من شخصا فکر می کنم که علت پایین بودن سرعت کمبو شما به خاطر مود گرافیکی بالا می باشد پیشنهاده بنده این است که در صورت امکان دو نوع کمبو طراحی شود یکی برای مود گرافیکی و دیگری به صورت کاملا ساده که مورد دومی سرعت بالایی داشته باشد.
3. در صورت امکان بتوان دادهای موجود را مانند کمبو معمولی(online search) جستجو کرد(البته این قسمت زیاد مهم نیست)
Mbt925
شنبه 17 شهریور 1386, 22:42 عصر
دوست عزیز ممنون از پیشنهادتون.
این کمبوباکس یه کمبوباکس معمولی نیست و از این نوعش اصلا موجود نیست و منحصربفرده ،
و در نتیجه نباید توقع داشت مثل کمبوباکس معمولی عمل کنه ،
این کجا و آن کجا ، کار این دوتا ابزار کاملا متفاوته و از آنجا که کاری که می کنه خیلی سنگینه و برای هر گزینه کمبو ، همون چک باکسی که معرفی کردم داره لود میشه و هز گزینه تنظیمات مستقل داره، پس سنگین شدن کاملا طبیعه.
از اونجا که همچین ابزاری فقط در تعداد کم کاربرد داره (هیچ کس نمیاد 1000 تا گزینه برای تیک خوردن قرار بده .... :متعجب:) و سرعت در تعداد معمولی قابل قبوله پس مشکلی نیست.
در مورد ItemData پیشنهاد خوبیه ، اضافه می کنم.
ممنون از نظرات خوبتون دوست عزیز.
vbsqlhadi1
چهارشنبه 21 شهریور 1386, 12:30 عصر
ممنون که پیگیر این تاپیک هستید
در مورد موضوع اول که فرموده بودید چون من با برنامه نویسی AXTivex اصلا آشنایی ندارم می خواستم ببینم که نمی شد که از یک listbox که سرعت زیاده دارد برای این کار استفاده کنمیم؟ که هم از لحاظ گرافیکی بار زیادی نداشته باشد و هم اینکه ذاتا سرعت بالایی دارد.
Mbt925
چهارشنبه 21 شهریور 1386, 13:04 عصر
از اونجا که ویژگی اصلی کمبوباکس ما داشتن چک باکس بود ، بهترین حالت استفاده از چک باکس بود ولی میشد از لیست باکس هم استفاده کرد ، که
تنها خوبیش بالا رفتن سرعت بود ولی با کلی محدودیت همراه بود.
درکل همون طور که گفتم سرعت در این مورد زیاد اهمیت نداره.
زیاد سخت نیگیرین.:چشمک:
MMR_1344
چهارشنبه 21 شهریور 1386, 15:44 عصر
دوست عزیز به هر حال از زحمتی که کشیدی و برنامه ای رو تهیه کردی بسیار سپاسگذارم
vbsqlhadi1
جمعه 23 شهریور 1386, 05:09 صبح
ببخشید یک سورس برنامه هم زحمت کشیده بودید و فرستادید ولی این سورس را موقعی که می خواهیم به OCX تبدیل کنیم Error زیر را میدهد
no public usercontrol detected
Mbt925
جمعه 23 شهریور 1386, 11:04 صبح
ببخشید یک سورس برنامه هم زحمت کشیده بودید و فرستادید ولی این سورس را موقعی که می خواهیم به OCX تبدیل کنیم Error زیر را میدهد
no public usercontrol detected
دوست عزیز روی یوزرکنترل کلیک کنید تا Property هاش سمت راست ظاهر بشه.
از قسمت Property ها خصوصیت Public رو به True تغییر بدید
مشکل حل میشه.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.