PDA

View Full Version : ایجاد حالت autocomplete برای textbox



adineh67
چهارشنبه 20 اسفند 1393, 22:39 عصر
سلام به همگی
من میخوام تو تکست باکس وقتی یه کراکتر تایپ کردم تموم فیلدهای حاوی اون کراکتر رو بصورت autocomplete بهم نمایش بده
برای این منظور از کد زیر استفاده کردم:


public void ShowCodeWstr(string str,out List<string> items)
{
string code1;
List<string> items1 = new List<string>();
var allcode = from info in SMEA.darpars where info.z1.Contains(str) select new { info.z1 };
foreach (var ac in allcode)
{
code1 = ac.z1;
items1.Add(code1);
};
items = items1;
}




private void codesearch_TextChanged(object sender, EventArgs e)
{
List<string> items1 = new List<string>();
CNRL.ShowCodeWstr(codesearch.Text,out items1);
codesearch.AutoCompleteCustomSource.Add(items1.ToS tring());

}


بریک پوینت که میذارم داده هامو بدرستی از پایگاه واکشی میکنه اما نمایش نمیده بنظر خودم ایراد از این خط کد هست ولی نمیدونم چجوری حلش کنم



codesearch.AutoCompleteCustomSource.Add(items1.ToS tring());


پیشاپیش از راهنماییتون ممنونم

qartallar
پنج شنبه 21 اسفند 1393, 11:37 صبح
سلام میتونی از این لینک ها کمک بگیری

http://www.c-sharpcorner.com/UploadF...ompletion.aspx (http://www.c-sharpcorner.com/UploadFile/mahesh/AutoCompletion02012006113508AM/AutoCompletion.aspx)

http://www.google.com/imgres?imgurl=...d=0CB4QMygBMAE (http://www.google.com/imgres?imgurl=http://1.bp.blogspot.com/-P1nXtZJvB7s/UJn750GNplI/AAAAAAAAACA/QJbzQoMdYOo/s400/auto-complete-textbox.gif&imgrefurl=http://resncode.blogspot.com/2012/11/autocomplete-mode-for-textbox-in-c-net.html&h=215&w=369&tbnid=euS4DfUEzGL6jM:&zoom=1&docid=IKBDycmVaObDGM&ei=bGz4VMzGL6u6ygPJo4GgDw&tbm=isch&ved=0CB4QMygBMAE)

http://www.codeproject.com/Articles/...mplete-TextBox (http://www.codeproject.com/Articles/16942/AutoComplete-TextBox)

adineh67
جمعه 22 اسفند 1393, 06:37 صبح
من دوباره برناممو تست کردم دیدم تو بار اول چیزی نمایش نمیده مثلا وقتی میزنم 1 هیچی نشون نمیده وقتی 1 رو پاک می کنم و دوباره مینویسمش درست میشه چرا اینجوریه؟:ناراحت:

یونس ابراهیمی
جمعه 22 اسفند 1393, 21:59 عصر
سلام دوست عزیز، شاید این آموزش به دردتون بخوره

برای ایجاد یک جعبه متن با خاصیت AutoComplete ابتدا یک جعبه متن بر روی فرم قرار داده و سپس کدهای زیر را بنویسید :



using System;
using System.Windows.Forms;

namespace AutoCompleteTextBox
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.AutoCompleteMode = AutoCompleteMode.Suggest;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoCompleteStringCollection DataCollection = new AutoCompleteStringCollection();
addItems(DataCollection);
textBox1.AutoCompleteCustomSource = DataCollection;
}

public void addItems(AutoCompleteStringCollection Strings)
{
Strings.Add("Younes");
Strings.Add("Yahya");
Strings.Add("Reza");
Strings.Add("Sorosh");
Strings.Add("Siavash");
Strings.Add("Ali");
}
}
} حال اگر برنامه را اجرا و مثلا حرف a را فشار دهید مشاهده می کنید که لیست پیشنهاد دهنده به شما نمایش داده می شود :

http://www.w3-farsi.com/wp-content/uploads/2015/03/Autocomelete-textbox-c.png

لینک مرجع (http://www.w3-farsi.com/textbox-%D8%A8%D8%A7-%D9%82%D8%A7%D8%A8%D9%84%DB%8C%D8%AA-autocomplete-%D9%BE%D8%B1-%D8%B4%D8%AF%D9%86-%D8%AE%D9%88%D8%AF%DA%A9%D8%A7%D8%B1/)

adineh67
شنبه 23 اسفند 1393, 05:29 صبح
مرسی از لطفتون
حالا اگه بخوام با انتخاب یه آیتم از لیستی که بهم نشون میده یسری کد اجرا شن چیکار کنم؟
کدامو تو رویداد Textchanged که میذارم اتفاقی نمیفته

hamid_0341
شنبه 23 اسفند 1393, 08:13 صبح
مرسی از لطفتون
حالا اگه بخوام با انتخاب یه آیتم از لیستی که بهم نشون میده یسری کد اجرا شن چیکار کنم؟
کدامو تو رویداد Textchanged که میذارم اتفاقی نمیفته



if (e.KeyData == Keys.Enter)
{
MessageBox.Show("now");
}

adineh67
شنبه 23 اسفند 1393, 08:27 صبح
if (e.KeyData == Keys.Enter)
{
MessageBox.Show("now");
}

اینو کجا باید بنویسم دوست عزیز؟
تو رویداد textchange ؟

hamid_0341
شنبه 23 اسفند 1393, 08:49 صبح
اینو کجا باید بنویسم دوست عزیز؟
تو رویداد textchange ؟
توی رویداد KeyDown

adineh67
شنبه 23 اسفند 1393, 09:02 صبح
ببینید دوست عزیز من نمیخوام با زدن اینتر اتفاقی بیفته من میخوام وقتی کاربر از لیست باز شده حین جست و جو یه گزینه ای رو انتخاب کرد دستوراتم اجراشن

hamid_0341
یک شنبه 24 اسفند 1393, 06:34 صبح
ببینید دوست عزیز من نمیخوام با زدن اینتر اتفاقی بیفته من میخوام وقتی کاربر از لیست باز شده حین جست و جو یه گزینه ای رو انتخاب کرد دستوراتم اجراشن

توی این حالتم اگه انتخاب کنند این کد اجرا میشه !