View Full Version : جست و جو در لیست باکس !؟
alnajon
سه شنبه 08 مرداد 1392, 14:14 عصر
با سلام
دوستان من داخل نرم افزار یک لیست باکس دارم که داخلش ایتم های مختلفی قرار داره .
حالا من میخواهم یک تکست باکس کنارش بذارم که هر چی توی این تکست باکس مینویسیم سریع توی لیست باکس جست و جو کنه و ایتم های اضافه رو پاک کنه .
مثلا لیست باکس ما این ایتم ها رو داره :
ali
farhad
majid
alireza
farbod
fateme
ahmad
خب . حالا میخواهم اگر توی تکست باکس حرف a تایپ شد فقط این ایتم ها بمونن :
ali
alireza
ahmad
و اگر دو حرف al تایپ شدند فقط ali و alireza بمونن !!
خب چطور این کار ها رو بکنم ؟!!؟ لطفا اگر سورس یا پروژه آماده ارائه بدید ممنون میشم
با تشکر
saeedchoopani
سه شنبه 08 مرداد 1392, 14:22 عصر
از event keyup تکست باکس استفاده کن.در هر بار زدن کلید لیسا باکس رو رفرش کن
alnajon
سه شنبه 08 مرداد 1392, 14:32 عصر
از event keyup تکست باکس استفاده کن.در هر بار زدن کلید لیسا باکس رو رفرش کن
داداش تقریبا فهمیدم چی میگی ، ولی چون در حد مبتدی هستم ، اگر میشه نمونه یا کدی قرار بدید ممنون میشم .
اگر در لینکی توضیح داده شده بفرمایید خودم میرم میبینم
با تشکر
c-sharp_South
سه شنبه 08 مرداد 1392, 15:27 عصر
بفرمایید این کد چیزی است که میخواستید.
private void textBox1_TextChanged(object sender, EventArgs e)
{
string myString = textBox1.Text;
int index = listBox1.FindString(myString, -1);
if (index != -1)
{
listBox1.SetSelected(index, true);
}
}
gilas1368
سه شنبه 08 مرداد 1392, 15:37 عصر
فک کنم این بتونه کمکت کنه
این برنامه لیست درایوها رو میگیره و فقط پوشه های داخل اون درایو یا اون پوشه رو نمایش میده
جستجو پوشه رو هم داره
108176
alnajon
سه شنبه 08 مرداد 1392, 20:08 عصر
بفرمایید این کد چیزی است که میخواستید.
private void textBox1_TextChanged(object sender, EventArgs e)
{
string myString = textBox1.Text;
int index = listBox1.FindString(myString, -1);
if (index != -1)
{
listBox1.SetSelected(index, true);
}
}
با تشکر
ولی این کد زیاد جالب نبود ، یعنی اون چیزی که میخواهم نیست
دوستان من اصلا فقط میخواهم توی لیست باکس جست و جو کنه ، همین
راستی سورس شما اگر کلمه ای در وسط یک ایتم باشه و جست و جو بشه ، پیدا نمیکنه . دیگه کسی نمیتونه کمکم کنه !؟
alnajon
سه شنبه 08 مرداد 1392, 23:34 عصر
دوستان راهنمایی نمیکنید ، حالا اگر ایتم های اضافی رو هم پاک نکرد مشکلی نیست ، فقط میخواهم یه سرچ کوچیک توی لیست باکس انجام بده . ممنون
aliagamon
چهارشنبه 09 مرداد 1392, 00:09 صبح
والا وقت ندارم چیزی بنویسم اینو قبلا داشتم تو یه برنامه استفاده کردم:
این تابع رو به برنامه اضافه کن
private void FindAllOfMyString(string searchString)
{
ListBox1.SelectionMode = SelectionMode.MultiExtended;
int x = -1;
if (searchString.Length != 0)
{
do
{
x = ListBox1.FindString(searchString, x);
if (x != -1)
{
if (ListBox1.SelectedIndices.Count > 0)
{
if (x == ListBox1.SelectedIndices[0])
return;
}
ListBox1.SetSelected(x, true);
}
} while (x != -1);
}
}
تو keyup تکست باکست اینو بنویس:
ListBox1.SelectedIndex = -1;
FindAllOfMyString(textBox1.Text);
alnajon
چهارشنبه 09 مرداد 1392, 00:47 صبح
والا وقت ندارم چیزی بنویسم اینو قبلا داشتم تو یه برنامه استفاده کردم:
این تابع رو به برنامه اضافه کن
private void FindAllOfMyString(string searchString)
{
ListBox1.SelectionMode = SelectionMode.MultiExtended;
int x = -1;
if (searchString.Length != 0)
{
do
{
x = ListBox1.FindString(searchString, x);
if (x != -1)
{
if (ListBox1.SelectedIndices.Count > 0)
{
if (x == ListBox1.SelectedIndices[0])
return;
}
ListBox1.SetSelected(x, true);
}
} while (x != -1);
}
}
تو keyup تکست باکست اینو بنویس:
ListBox1.SelectedIndex = -1;
FindAllOfMyString(textBox1.Text);
خیلی ممنون ، ولی این کد هم همون مشکل رو داره . یعنی اگر یه کلمه وسط باشه و اون رو جست و جو کنیم پیدا نمیکنه !
یعنی اگر یک ایتم این باشه :
barname navis is good site
خب . حالا اگر ما good رو تایپ کنیم این ایتم رو پیدا نمیکنه !!!
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.