PDA

View Full Version : سوال: نحوه ایجاد یک AutoComplete Search



JustAcMilan
چهارشنبه 11 اردیبهشت 1392, 12:16 عصر
با سلام آیا راهی هست که یک AutoComplete Search کامل مث تصویر زیر برای winforms (نه با wpf) ایجاد کرد
103547

چندتا مثال هم هست ولی راستش زیاد کامل نیستن
http://barnamenevis.org/showthread.php?392154-%D8%AC%D8%B3%D8%AA%D8%AC%D9%88%DB%8C-%D9%BE%DB%8C%D8%B4%D8%B1%D9%81%D8%AA%D9%87-%D8%AF%D8%B1-%D8%A8%D8%A7%D9%86%DA%A9-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA%DB%8C&p=1738995#post1738995
http://barnamenevis.org/showthread.php?337810-%D8%B3%D8%A7%D8%AE%D8%AA-%DA%A9%D9%85%D8%A8%D9%88-%D8%A8%D8%A7%DA%A9%D8%B3-%D8%A2%DB%8C%DA%A9%D9%88%D9%86-%D8%AF%D8%A7%D8%B1-ComboBox-With-Icon&p=1519387&viewfull=1#post1519387

JustAcMilan
چهارشنبه 11 اردیبهشت 1392, 18:18 عصر
یعنی تاحالا کسی نیاز به همچین امکانی رو توی برنامه ش احساس نکرده و نرفته دنبالش؟

tooraj_azizi_1035
چهارشنبه 11 اردیبهشت 1392, 18:27 عصر
http://www.telerik.com/products/winforms/dropdown-and-list.aspx

http://www.telerik.com/libraries/radcontrols_for_winforms/radcomboboxwin_autocomplete.sflb

JustAcMilan
چهارشنبه 11 اردیبهشت 1392, 19:17 عصر
http://www.telerik.com/products/winforms/dropdown-and-list.aspx

http://www.telerik.com/libraries/radcontrols_for_winforms/radcomboboxwin_autocomplete.sflb

من اینو قبلا هم دیده بودم اما راستش هیچوقت نتونستم ازش استفاده کنم (telerik هم نصب کردم)
در ضمن ترجیح میدم از کامپوننت استفاده نکنم، سرعت برنامه رو کم میکنه

tooraj_azizi_1035
پنج شنبه 12 اردیبهشت 1392, 15:08 عصر
من اینو قبلا هم دیده بودم اما راستش هیچوقت نتونستم ازش استفاده کنم (telerik هم نصب کردم)
در ضمن ترجیح میدم از کامپوننت استفاده نکنم، سرعت برنامه رو کم میکنه

یعنی شما می گید اصلاً نباید از کامپوننت استفاده کرد؟
و اینکه چرا میگید سرعت رو کم میکنه؟

barnamenevisjavan
پنج شنبه 12 اردیبهشت 1392, 15:37 عصر
دوست عزیز خدمت شما بدون کامپوننت:

یه تکسباکس روی فرم بنداز و همچنین یه فایل متنی با عنوان dictionary ایجاد کن و توش کلماتت رو بنویس و اینم کدها

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.IO;
using System.Collections;

namespace AutoComplete
{

public partial class frmMain : Form
{
AutoCompleteStringCollection wordCollection;
public frmMain()
{
InitializeComponent();
}

private void frmMain_Load(object sender, EventArgs e)
{
//use an autocompletestringcollection to hold the names
wordCollection = new AutoCompleteStringCollection();

//read in the dictionary
StreamReader wordReader = new StreamReader("dictionary.txt");
string line = "";

int i = 0;
while (line != null)
{
line = wordReader.ReadLine();
if (line != null)
wordCollection.Add(line);
i++;
}
wordReader.Close();

//choose to suggest AND append
txtNames.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
//set it for custom source
txtNames.AutoCompleteSource = AutoCompleteSource.CustomSource;
//set it to our source
txtNames.AutoCompleteCustomSource = wordCollection;

}

private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
}
}


حالا کافیه توی تکسباکس بنویسی تا خودش پیدا کنه و کامل کنه

csharpdoost
پنج شنبه 12 اردیبهشت 1392, 16:43 عصر
کدها رو اجرا کردم ولی یه مشکل داره .یعنی هر حرفی را تایپ میکنی اگه اول خط باشه میاره. مثلا اگه حرف وسط جمله بود و تایپ کنی نمیاره. طبق تاپیک اولی اگه توی تکس باکس کلمه ای رو نوشتیم تمامی خطهایی که اون کلمه توشون هست رو به ترتیب در یه لیست باکس لیست میکنه. اینو میتونی کاریش کنی؟

khayyams.votary
جمعه 13 اردیبهشت 1392, 13:42 عصر
دوست عزیز چرا برا این کار از یک UserControl استفاده نمی کنید که اون رو با استفاده از لیست مدیریت کنید و این طوری هم میتونید در سایر برنامه هاتون ازش استفاده کنید و هم اینکه کاملا اونی هست که مد نظر شماست.؟!

csharpdoost
جمعه 13 اردیبهشت 1392, 14:39 عصر
دوست عزیز چرا برا این کار از یک UserControl استفاده نمی کنید که اون رو با استفاده از لیست مدیریت کنید و این طوری هم میتونید در سایر برنامه هاتون ازش استفاده کنید و هم اینکه کاملا اونی هست که مد نظر شماست.؟!
بی زحمت اگه میشه کدهاشو بذارید که ما هم فیضی برده باشیم. ممنون

JustAcMilan
شنبه 14 اردیبهشت 1392, 23:38 عصر
بی زحمت اگه میشه کدهاشو بذارید که ما هم فیضی برده باشیم. ممنون

با سلام
با کمک یکی از دوستان و با استفاده از یوزرکنترل نوشتمش (بدون استفاده از کامپوننت و wpf)

خدمت شما
http://barnamenevis.org/showthread.php?64210-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%AF%D8%B1-%D8%B3%D9%8A-%D8%B4%D8%A7%D8%B1%D9%BE&p=1760650#post1760650