PDA

View Full Version : جستجوی لایو در ComboBox



mostafalfc
دوشنبه 01 آبان 1391, 18:51 عصر
سلام دوستان
من دارم رو یه پروژه کار میکنم بعد این پروژه برای ثبت گارانتی و ارسال و دریافت و از این چیزاست
حالا یه ComboBox دارم که یک فیلدخاص مثلا فیلد گروه کالای تمام رکوردها رو تو اون درج کردم
حالا مشکلی که دارم اینه که میخوام یه کدی توی text change این آقا Combobox بنویسم که وقتی کاربر میاد تو اون تاپ میکنه خودش به صورت اتوماتیک باز بشه و آیتم هایی که این مقدار رو دارند رو نمایش بده

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




string[] s = new string[cmbxKGroup.Items.Count];
for (int i = 0; i < cmbxKGroup.Items.Count; i++)
s[i] = cmbxKGroup.Items[i].ToString();

if (cmbxKGroup.Text != "" )
{
string item = cmbxKGroup.Text;
item = item.ToLower();
cmbxKGroup.Items.Clear();
List<string> list = new List<string>();
for (int j = 0; j < s.Length; j++)
{
if (s[j].ToLower().Contains(item))
list.Add(s[j]);
}
if (item != "")
foreach (string str in list)
cmbxKGroup.Items.Add(str);
else
cmbxKGroup.Items.AddRange(s);
cmbxKGroup.SelectionStart = item.Length;
cmbxKGroup.DroppedDown = true;
}



فقط یه اشکال داره اونم اینه که وقتی کاربر سرچو انجام داد نمیدونم چطوری دوباره اطلاعات قبلی رو برش گردونم تو ComboBox (منظورم فیلدهاییه که دیتابیس ذخیره شده)
چون با این کار میام آیتم های ComboBoxرو فیلتر میکنم با شرط اینکه حاوی متن تایپ شده کاربرباشند ولی بعدش نمیدونم چه کنم
ممنون میشم راهنماییم کنید

morteza271
دوشنبه 01 آبان 1391, 19:00 عصر
اگه منظورتون رو متوجه شده باشم نیازی نیس که شما خودتون دستی این کار رو انجام بدین.
کامبوباکس یه خاصیت داره با اسم AutoCompleteSource رو برابر ListItems قرار بدین و خاصیت AutoCompleteMode رو هم هرکدومی که خواستید تنظیم کنید(بر حسب نیازتون).
حالا وقتی کاربر یه حرف رو بزنه خود کامبوباکس میره به اولین آیتمی که با اون حرف شروع میشه.
امتحان کنید شاید نیازتون برطرف بشه ونیازی نباشه خودتون کنترل کنید.
موفق باشید