PDA

View Full Version : سوال: مشکل در جستجو؟



maryam_en
پنج شنبه 26 فروردین 1395, 04:21 صبح
با سلام. بنده تو پروژه خودم یه لیست باکس دارم که تعدادی عنوان توش ذخیره کردم، حالا می خوام وقتی یه عنوانی رو سرچ می کنم ، عنوان مربوطه توی لیست باکسم انتخاب بشه. با کد زیر این کارو میکنم هیچ آیتمی از لیست انتخاب نمیشه البته خطا هم نمیده. کسی از دوستان می دونه مشکلش چیه؟؟


Dim i As Integer
(i = Me.ListBox1.FindString(Me.TextBox1.text
Me.ListBox1.SelectedIndex = i

gilsoft
شنبه 28 فروردین 1395, 01:10 صبح
با سلام. بنده تو پروژه خودم یه لیست باکس دارم که تعدادی عنوان توش ذخیره کردم، حالا می خوام وقتی یه عنوانی رو سرچ می کنم ، عنوان مربوطه توی لیست باکسم انتخاب بشه. با کد زیر این کارو میکنم هیچ آیتمی از لیست انتخاب نمیشه البته خطا هم نمیده. کسی از دوستان می دونه مشکلش چیه؟؟


Dim i As Integer
(i = Me.ListBox1.FindString(Me.TextBox1.text
Me.ListBox1.SelectedIndex = i



سلام دوست عزیز
من از کد زیر استفاده کردم .. دقیقاً جواب داد
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
ListBox1.Items.Clear()
ListBox1.Items.AddRange(New Object() {"qwe", "asd", "zxc", "rty", "fgh", "vbn"})
End Sub

Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim j As Integer
j = ListBox1.FindString(TextBox1.Text)
Console.WriteLine(j)
ListBox1.SelectedIndex = j
End Sub

ویا میتونی بجای کدسطر 10 .. از کد زیر استفاده کنی:
ListBox1.SelectedItem = ListBox1.Items(j)

حتی به حروف بزرگ و کوچک هم حساسیت نداره

موفق باشید .....

maryam_en
سه شنبه 14 اردیبهشت 1395, 04:45 صبح
سلام دوست عزیز، ممنون از راهنماییتون. چیزی که فرمودین رو اجرا کردم اما نمیدونم چرا تو کار من مشکل پیش میاد. ایتم هایی که تو لیست باکسم دارم هر دفعه میتونه با اجرای کاربر تعدادش زیاد بشه. کل کارم برای سرچ اینه:


Public Class Form2


()Sub data_loader
Dim a, b, c As String
Dim i, j, k As Integer

'--------------------------------------------------تعداد کل یادداشت هارو در فایلی به نام total ذخیره کردم--------

a = Application.StartupPath + "\data\docs\total.txt"
()i = FreeFile
( FileOpen(i, a, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Default, 250
(FileGet(i, b, 1
(j = Val(b
()FileClose


'-----------------------------------برای هر یادداشت یک فایل هم نام با شماره همون یادداشت درست کردم و در خط 1 این فایل عنوان یادداشت و در خط 2 تاریخ رو ذخیره کردم----
For k = 1 To j
a = Application.StartupPath + "\data\docs\" + k.ToString + ".txt"
()i = FreeFile
( FileOpen(i, a, OpenMode.Random, OpenAccess.ReadWrite, OpenShare.Default, 250
(FileGet(i, b, 1


(FileGet(i, c, 2
()FileClose

'----------------در لیست باکس اول عناوین یادداشت هارو وارد کردم------
(Me.ListBox1.Items.Add(b

'---------------------------در لیست دوم شماره یادداشت ها رو-------
(Me.ListBox2.Items.Add(k.ToString

'-------------------------- در لیست سوم تاریخ یادداشت ها---------


( Me.ListBox3.Items.Add(c
Next
End Sub

Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load
()data_loader
End Sub

'----------------------در این sub با انتخاب هر ایتمی از لیست اول شماره و تاریخ اون ایتم هم انتخاب می شود و سپس محتوای اون یادداشت که در فایل rtf نگهداری می شود در یم richbox نمایش می شود------
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
Me.ListBox2.SelectedIndex = Me.ListBox1.SelectedIndex
Me.ListBox3.SelectedIndex = Me.ListBox1.SelectedIndex


Dim a As String
a = Application.StartupPath + "\data\docs\" + Me.ListBox2.Text + ".rtf"
Me.RichTextBox1.LoadFile(a)


Me.Label3.Text = Me.ListBox3.Text
End Sub


'----------در پایان هم sub جستجو که حتما باید براساس عنوان یادداشت باشد-----
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim i As Integer
(i = Me.ListBox1.FindString(Me.TextBox1.Text
ListBox1.SelectedIndex = i

End Sub


End Class


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