PDA

View Full Version : ComboBox در VB 6.0



Mohsen229266
جمعه 05 مرداد 1386, 01:52 صبح
با عرض سلام:
من یک combo box می خواهم که searchable باشد یعنی اگر در combobox حرف b را بنویسیم تمام کلماتی را که ابتدای آن حرف b می باشد را نشان دهد واگر حرف e را بعد از b وارد کردیم آنگاه کلماتی را نشان دهد که ابتدای آنها be باشدو قابل select هم باشد البته در vb 6.0
Mer30:متفکر:

shamsoft
جمعه 05 مرداد 1386, 09:30 صبح
این که کار سختی نیست. می تونی تابعش رو خودت بنویسی. من قبلا همچین کاری رو با لیست باکس برای یه دیکشنری انجام دادم.حالا فکر نمی کنم واسه ComboBox فرق زیادی داشته باشه. مثلا می تونی با دستور Left یا Mid این کار رو انجام بدی.

Hossein Bazyan
جمعه 05 مرداد 1386, 11:01 صبح
سلام
کومبوباکس ویژه ای نمیخواد با نوشتن چند کد در keypress میتوان این عمل را به کومبو داد. در پستهای من بگرد اگر پیداش نکردی بگو تا برات بذارم .

Mohsen229266
جمعه 05 مرداد 1386, 21:31 عصر
با عرض سلام من این کار رو با تابع MID انجام دادم ولی مشکلم روی select کردن text کومبو هست با فرض اینکه ما کلمه ali را در لیست کومبو داریم وقتی حرف a را وارد text کومبو می کنیم در جلوی حرف a دو حرف li به صورت select شده قرار بگیرند و اگر حرف l را بعد از حرف a تایپ کردیم فقط حرف i به صورت select شده در جلوی al قرار داشته باشد البته در VB 6
ممنونم
محسن229266

hamed_F
شنبه 06 مرداد 1386, 09:18 صبح
دوست عزیز سلام
اگر اطلاعات داخل کومبو را از روی بانک می خوانی کارهای زیر را در KeyPress انجام بده
1- دستور جستجوی فیلد خود را برابر با (مثال نام فیلد fname است)
"select fname from tbl1 where fname like '" & combo1.text & "%' order by fname"
2- مقدار combo1.text وارد شده را بافر کن
3- محتوی کومبو را خالی کن و با دستور سلکت جدید آنرا پر کن
4- مقدار combo1.listindex=0 قرار دهید و مقدار تکست آنرا برگردانید
5- بدون شک حروف اول مقدار برگشت داده شده با حروف وارد شده برابر است
6- توسط دستورات SelStart و SelLength و بافر اولیه (بند2)مابقی حروف را سلکت کنید
* در کل فرایند توجه کنید کومبو خالی نباشد . در اینصورت می توانید کلمه یافت نشد را برگردانید
** پیشنهاد می کنم برای این کار یک پروسیجر تعریف کنید که فهم برنامه بالا رود و برای هر قسمت تنها آنرا صدا بزنید و نیازی به تکرار کد نباشد
موفق باشید

Mohsen229266
شنبه 06 مرداد 1386, 17:52 عصر
ممنونم ولی بافر کردن combo.text و محتوی کومبو را خالی کن و با دستور سلکت جدید آنرا پر کن و ... ؟ اگه لطف کنید این برنامه رو برام بنویسید خیلی خیلی ممنون میشم
Mohsen229266@Yahoo.com Mer30

Hossein Bazyan
پنج شنبه 11 مرداد 1386, 15:50 عصر
سلام
من یه هفته مسافرت بودم
کد زیر را باید در قسمت KeyUp در ComboBox بنویسید .
در نظر داشته باشید در قسمت With cboComboTest به جای cboComboTest نام کومبوی خود را بنویسید


Private Sub cboComboTest_KeyUp(KeyCode As Integer, _
Shift As Integer)
Static NoSelectText As String
Dim i As Long
Const RGBerror = 255
With cboComboTest
If KeyCode = vbKeyUp Then Exit Sub
If KeyCode = vbKeyDown Then Exit Sub
If KeyCode = vbKeyLeft Then Exit Sub
If KeyCode = vbKeyRight Then Exit Sub
If KeyCode <> vbKeyBack Then
NoSelectText = Mid(.Text, 1, Len(.Text) - .SelLength)
Else
If NoSelectText <> "" Then
NoSelectText = Mid(NoSelectText, 1, Len(NoSelectText) - 1)
End If
End If
For i = 0 To .ListCount - 1
If UCase(NoSelectText) = UCase(Mid(.List(i), 1, Len(NoSelectText))) Then
.ListIndex = i
Exit For
End If
Next
.SelStart = Len(NoSelectText)
.SelLength = Len(.Text)
If .ListIndex = -1 Then
.BackColor = RGBerror
Else
.BackColor = vbWindowBackground
End If
End With
End Sub


در ضمن یک مثال هم آپلود کرده ام

Mohsen229266
جمعه 12 مرداد 1386, 01:08 صبح
Thank Thank Thank

Mer30

واقعا این قشنگترین و کاملترین جوابی بود که گرفتم

خیلی لطف کردی حسین جان یه دنیا ممنون

الف.م
پنج شنبه 01 آذر 1386, 13:01 عصر
نیاز به هیچ گونه کدنویسی نیست. کافی است نوع combo را simple یا همان شماره 1 انتخاب کنی و آن را مقدار پایین بکشی.

ali_habibi1384
شنبه 03 آذر 1386, 06:15 صبح
با عرض سلام:
من یک combo box می خواهم که searchable باشد یعنی اگر در combobox حرف b را بنویسیم تمام کلماتی را که ابتدای آن حرف b می باشد را نشان دهد واگر حرف e را بعد از b وارد کردیم آنگاه کلماتی را نشان دهد که ابتدای آنها be باشدو قابل select هم باشد البته در vb 6.0
Mer30:متفکر:
اگر یه سرچ کوچولو می کردی حتما به نتیجه می رسیدی بهر حال این کد رو بخون مشکلت حل میشه:


adodc1.recordset.filter=("field like '" & combo1.text & "%'")

Mohsen229266
جمعه 29 آذر 1387, 10:43 صبح
سلام دوست عزیز من یه نرم افزارحسابداری نوشتم از sql server 2000 استفاده کردم میخوام بدونه اینکه sql server 200ر را بر روی کامپیوتر کاربر نصب کنم برنامه ام رو اجرا کنم لطفا منو راهنمایی کن که چطور میتونم اینکارو انجام بدم متشکرم

shiravan_d
شنبه 09 خرداد 1388, 16:08 عصر
salam doostan
man mikham dakele barname mohtaviate combobox ro pak konam
chejorii mishe in karo kard?
ba tashakor