PDA

View Full Version : سوال: جستجو در بین آیتم های listbox و مرتب سازی آن



dele_ghamgin_2008
سه شنبه 11 آذر 1393, 23:37 عصر
سلام . من یک لیست باکس دارم که توش یک سری آیتم داره . یک تکست باکس دارم که می خوام وقتی توش عبارتی می نویسم ، از توی لیست باکس سرچ کنه و هر آیتمی از لیست باکس که توش کلمه ای از این تکست باکس رو داشت توی لیست باکس نگه داره و مابقی آیتم هرو مخفی کنه و نمایش نده . به عنوان مثال آیتم های من برابر :


ایران من
همه جا ایران است
من هستم


حال اگر در تکست باکس نوشتم : ایران >> آیتم های زیر فقط نمایش داده شود :

ایران من
همه جا ایران است

_Memol_
چهارشنبه 12 آذر 1393, 00:56 صبح
سلام
آیتم ها رو با یک لیستی از String پر کن بعد توو اون لیست جستجو کن

List<string> lstStr = new List<string>();

private void Form1_Load(object sender, EventArgs e)
{
lstStr.Add("ایران");
lstStr.Add("همه جا");
lstStr.Add("محمد ایران عشق");
lstStr.Add("ایران من");
listBox1.DataSource = lstStr;
}



private void textBox1_TextChanged(object sender, EventArgs e)
{
try
{
if (textBox1.Text.Trim() != "")
listBox1.DataSource = lstStr.Where(c => c.Contains(textBox1.Text.Trim())).ToList();
else
listBox1.DataSource = lstStr;
}
catch (Exception)
{
}
}

dele_ghamgin_2008
چهارشنبه 05 فروردین 1394, 19:39 عصر
ممنونم . ولی من از این دستور استفاده کردم و مشکلم حل شد :
lstOne.Items.Clear(); //جستجو از بین آیتم های لیست باکس
List<string> search = new List<string> { txtSearchItem.Text };
List<string> finds = new List<string>();
foreach (var item in LstAll.Items.Cast<string>())
{
foreach (var itemIn in search)
{
if (item.Contains(itemIn))
{
finds.Add(item);
}
}
}
lstOne.Items.AddRange(finds.ToArray());
lblOne.Text = lstOne.Items.Count.ToString();

dele_ghamgin_2008
دوشنبه 10 فروردین 1394, 00:37 صبح
حالا سوال اصلی من چیز دیگری است . من اگر روی هر کدام از آیتم ها کلیک کنم در شرایط اولیه ، یک لینک را بر اساس نوع ایندکس آیتم در وب بروزر باز می کند . یعنی یه سایتی باز میشه . حالا وقتی سرچ میکنم این آیتم ها جابجا میشن ، چگونه می توانم لینک ها مربوط به هر کدام رو جابجا کنم !؟ مثلا :

آیتم های اولیه من :

علی
رضا
حسن
علی رضا

وقتی روی این آیتم ها کلیک کنم ، یک سایت باز میشه و این سایت ها بر اساس شماره ردیف هر آیتم بارگذاری شده . حالا در اینجا علی رضا آیتم ردیف 4 هست و با کلیک روی این گزینه سایت گزینه 4 باز میشه . ولی وقتی توی سرچ بنویسم : علی ، لیست باکس به شکل زیر تغییر میکنه :
علی
علی رضا

حالا وقتی روی علی رضا کلیک کنم ، اینجا چون آیتم شماره 2 هست ، سایت شماره 2 باز میشه درحالی که من میخواهم همان شماره 4 باز بشه . چه باید بکنم ؟ ممنون می شوم راهنمایی کنید . با تشکر