PDA

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



dele_ghamgin_2008
جمعه 05 دی 1393, 13:40 عصر
من یک لیست باکس دارم که درونش آیتم های زیادی قرار دارد. یک تکست باکس هم دارم واسه جستجو . می خواهم وقتی توی تکست باکس کلمه ای رو نوشتم ، از آیتم های توی لیستباکس جستجو کند و فقط آیتم هایی را به من نمایش دهد که این کلمه ای که در تکست نوشتم در این آیتم ها نباشد .

مثلا : آیتم های لیست باکس من برابر زیر است :

ایران کشور من است
من ایران را دوست دارم
من در ترکیه هستم


و حالا وقنی توی تکست باکس نوشتم = ایران
آیتم های لیست باکس به شکل زیر تغییر کند
من در ترکیه هستم

dele_ghamgin_2008
جمعه 05 دی 1393, 13:45 عصر
مشکل اولم حل شد ولی می خواهم برنامه را ارتقا دهم که بشه در تکست باکسی که می نویسم ، دو کلمه را آنالیز و یا همان مورد جستجو قرار دهم بدین شکل که بین دو کلمه با زدن ویرگول یا علامت # می خواهم از هم جدا کنم که برنامه تشخیص دهد .

dele_ghamgin_2008
یک شنبه 07 دی 1393, 21:35 عصر
برنامه را به این شکل نوشتم و به درستی هم کار می کند . ولی قسمت دوم سوالم همچنان باقی مانده است


List<string> search = new List<string> { txtGheyrKelidi.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());

سوالم این است که می خواهم در تکست باکس برای سرچ بجای جستجو یک عبارت ، دو عبارت را بتوانم سرچ کنم . یعنی با گذاشتن # کاری کنم که برنامه هر دو کلمه را در این جستجو مبذول نماید.

در مثال پست اول یعنی اگر بیایم در تکست باکس بنویسم :
را#در

نتیجه لیست باکس این باید باشد :

ایران کشور من است

زیرا این آیتم نه کلمه را دارد و نه کلمه در

Share & Learn
یک شنبه 07 دی 1393, 22:28 عصر
سلام
همین الان اینو نوشتم تا جایی که تست کردم تقریبا ok هست
اگه ایرادی داره خودتون زحمتش رو بکشید



ویرایش:
چون سریع نوشته بودم می دونستم حتما باید یه ایراداتی داشته باشه فقط می خواستم روش کار دستتون بیاد، به همین دلیل با ایراد فرستادمش
بفرمائید، اصلاح شد خدمت شما:

126986


موفق باشید

dele_ghamgin_2008
یک شنبه 07 دی 1393, 23:49 عصر
سلام
همین الان اینو نوشتم تا جایی که تست کردم تقریبا ok هست
اگه ایرادی داره خودتون زحمتش رو بکشید
خدمت شما:



private void textBox1_TextChanged(object sender, EventArgs e)
{
string[] searchitems = textBox1.Text.Split('،');
int sLength = searchitems.Length;
int lLength = listBox1.Items.Count;
bool check = true;
List<string> finds = new List<string>();
foreach (var item in listBox1.Items.Cast<string>())
{
for (int j = 0; j < sLength; j++)
{
if (item.Contains(searchitems[j]))
{
check = false;
break;
}
}
if (check == true)
{
finds.Add(item);
}
}
listBox2.Items.Clear();
for (int i = 0; i < finds.Count(); i++)
{
listBox2.Items.Add(finds[i]);
}
}



ممنون ولی کار نکرد . به عنوان مثال من لیست باکسی که دارم دارای آیتم های زیر هست :
قیمت گرده گل عسل
قیمت عسل در عراق
قیمت هر کندو عسل
قیمت یک کندو عسل
قیمت عسل در کویت
قیمت عسل درجه یک
فروش عسل درجه یک
خرید موم خوب عسل
فروش موم خوب عسل
فروش عسل خارشتر
فروش گرده گل اصل
عسل در قرآن کریم
فروش عسل در بهار

وقتی توی تکست باکس عبارت عسل رو می نویسم ، چیزی برایم در لیست باکس 2 پیدا نمیکنه . در حالی که عبارت زیر دارای کلمه عسل نبود و باید پیداش می کرد
فروش گرده گل اصل

dele_ghamgin_2008
دوشنبه 08 دی 1393, 08:43 صبح
سلام
همین الان اینو نوشتم تا جایی که تست کردم تقریبا ok هست
اگه ایرادی داره خودتون زحمتش رو بکشید

موفق باشید

متشکرم ، پاسخ کاملا صحیح بود و این دستور به درستی کار کرد. ممنون می شوم توضیحی دهید که این دستور دقیقاً چه کاری دارد انجام می دهد !؟