PDA

View Full Version : سوال: جلوگیری از تکرار در یک لیست



nicevahid
شنبه 23 دی 1391, 11:37 صبح
سلام خدمت شما دوستان عزیز. میخواستم بدونم چطوری میشه از تکرار در یک listBox جلوگیری کرد. فرضا از یه textbox هر دفعه یک رشته رو بفرسته به یه لیست . میخوام بدونم چطوری میشه از تکرار توی لیست توی یه همچین مثالی جلوگیری کرد. نمیخوام از تنظیمات textbox برم. ایا توی لیست هم میشه کاری کرد که از تکرار جلوگیری بشه ؟؟
ممنون

حمید محمودی
شنبه 23 دی 1391, 13:17 عصر
http://barnamenevis.org/showthread.php?184738

محسن واژدی
شنبه 23 دی 1391, 19:29 عصر
سلام علیکم
شاید استفاده از توابع API سریعتر باشد، علل الخصوص لزوم استفاده از API برای این منظور زمانی بیشتر احساس میشود که با لیست باکسی با حجم زیادی آیتم مواجه باشیم به عنوان مثال 500، 1000 یا 5000 آیتم که در مواقع استفاده از حلقه موجب کاهش بسیار شدید سرعت برنامه می شود،
کد زیر را بررسی کنید:
Private Declare Function SendMessage Lib "USER32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Any) As Long
Private Const LB_FINDSTRINGEXACT = &H1A2

Private Sub Command1_Click()
On Error Resume Next
Dim sTarItText$
sTarItText$ = Text1.Text

With List1
If SendMessage(.hWnd, LB_FINDSTRINGEXACT, 0&, sTarItText$) = -1 Then
.AddItem sTarItText$
Else
MsgBox "Already exist...", vbInformation
End If
End With
End Sub
بجای Text1.Text نام Text-Box را جایگزین کنین و بجای List1 هم نام list-box
موفق باشید