AutoComplete کردن textbox
سلام دوستان
یک مشکل ساده ولی ...
من از خاصیت AutoComplete استفاده کردم در textbox
بعنوان مثال یک آرایه داریم از عناصر AB015 , AD088 , AC079 , AF089 , AQ020 , AE , ...
حالا می خواهم با زدن دکمه Space یکبار دیگر عناصر من AutoCompleteبشوند
اگه مینوتید کمکم کنید که همین قسمت برنامم مونده تا تحویل بدم
د.نبالش گشتم ولی پیدا نکردم.
هدفم کمک در تایپ به کاربر می باشد
یه چیزی تو مایه های خود visual studio
فقط با خود textbox بدون استفاده از Listbox ممنون
نقل قول: AutoComplete کردن textbox
سلام اگه عناصرتون ثابت هستند میتونی از AutoComplete استفاده کنی در غیراینصورت از ایونت text change تکس استفاده کنی (با استفاده از دستور سلکت و like) سرچ کنید نمونش زیاده.موفق باشید
نقل قول: AutoComplete کردن textbox
نقل قول: AutoComplete کردن textbox
ممنونم از راهنمائیتون ولی مثل اینکه من بد توضیح دادم . شرمنده
من تایپ میکنم عل و بعد بین لیست های که عل توش بود علی رو انتخاب می کنم.و بعد space رو می زنم هنوز از textbox خارج نشدم و دارم تایپ می کنم و بعد تایپ میکنم مح بازم براک ATUOCOMMPLET بشه
فقط برای کلمه اولی نباشه
و برای هر SPACE یک AUTOCOMMPLET انجام بشه
روشهای که شما فرمودید من زیرو رو کردم
من از LISTBOX نمی تونم استفاده کنم خارج شدن از textbox به منزله leave شدن اونه
برای هر کلمه یک AUTOCOMMPLET
بازم ممنونم
من عناصرم رو از بانک می خونم
نقل قول: AutoComplete کردن textbox
من برای کامبو باکس یه همچین چیزی نوشتم امیدوارم کمکتون بکنه : CmbOstan همان کنترل کامبو باکس
public int countWord_ostan;//z
private void Cmb_Ostan_TextChanged(object sender, EventArgs e)//a
{
foreach (String str in Cmb_Ostan.Items)//a
{
if (str.StartsWith(Cmb_Ostan.Text))//b
{
Cmb_Ostan.Text = str;//c
}
}
Cmb_Ostan.Select(countWord_ostan, Cmb_Ostan.Text.Length - 1);//d
}
private void Cmb_Ostan_KeyDown(object sender, KeyEventArgs e)//e
{
countWord_ostan++;//f
if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down) countWord_ostan = 0;//g
}
private void Cmb_Ostan_MouseDown(object sender, MouseEventArgs e)//f
{
countWord_ostan = 0;//h
Cmb_Ostan.SelectAll();//k
}
نقل قول: AutoComplete کردن textbox
ممنون از راهنمای . اینکه فقط رو اولی کار می کنه و این کاری که شما انجام دادید خیلی ساده تر میشه انجام داد .
به هیچ عنوان منظور من این نیست
اگه کسی بتونه کمکم کنه ممنون میشم
http://upload.weblogbartar.com/image...64rbyqwtjw.jpg
نقل قول: AutoComplete کردن textbox
از کمبوباکس میتونید استفاده کنید. چیزی شبیه کدهای زیر (البته با کلیک موس نمیدونم چرا جواب نمیده ولی با کلیدهای جهت نما انتخاب کنید)
StringBuilder strbLastWord = new StringBuilder();
StringBuilder strbOldText = new StringBuilder();
SqlDataReader sqldr;
private void comboBox1_TextUpdate(object sender, EventArgs e)
{
strbLastWord.Remove(0, strbLastWord.Length);
strbLastWord.Append(comboBox1.Text.Split(' ').Where(w => w != string.Empty && w != null).LastOrDefault());
if (strbLastWord != null)
{
cmd = new SqlCommand("select name from tbl where name like N'" + strbLastWord.ToString() + "%'", con);
comboBox1.Items.Clear();
try
{
if (con.State != ConnectionState.Open)
con.Open();
sqldr = cmd.ExecuteReader();
while (sqldr.Read())
{
comboBox1.Items.Add(sqldr["name"].ToString());
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
if (con.State != ConnectionState.Closed)
con.Close();
}
}
comboBox1.Select(comboBox1.Text.Length, 0);
comboBox1.DroppedDown = true;
strbOldText.Remove(0, strbOldText.Length);
strbOldText.Append(comboBox1.Text);
}
private void comboBox1_DropDownClosed(object sender, EventArgs e)
{
if (comboBox1.SelectedItem != null)
{
strbOldText.Remove(strbOldText.Length - strbLastWord.Length, strbLastWord.Length);
strbOldText.Append(comboBox1.SelectedItem.ToString ());
comboBox1.Items.Clear();
comboBox1.Text = strbOldText.ToString();
comboBox1.Select(comboBox1.Text.Length, 0);
}
}
نقل قول: AutoComplete کردن textbox
ممنونم.
این کار شاید درست باشه ولی به هیچ عنوان زیبایی و کارایی آنچنانی نداره
با انتخاب گزینه بعدی نوشته قبلیش پاک میشه.
من هم می خوام با صفحه کلید انتخاب کنه
اگه دوستان دیگری بتونن این موضوع رو حل کنن ممنون می شم
خیلی ممنونم دوست عزیز
نقل قول: AutoComplete کردن textbox
سلام اگه منظورتون اینه که مثلا شما تو آرایه داره علی - علی رضا - علی محمد- علی فتحی- علی فتحی نیا ) و حالا منظورت انتخاب علی فتحی نیا است ،شما باید دستی لااقل تا علی فتحی خودت بدون زدن space تایپ کنی .این کاریه که همه انجام میدن (به نظر من چیزی که شما دنبالشی معقول نیست)
نقل قول: AutoComplete کردن textbox
شما 10000000 فیلد داری .
داری تایپ میکنی .
با زدن space کلمه بعدی رو تایپ می کنی.
هر چیزی دوست داشتی تایپ کن .
ولی این textbox در هز spaceکمکت میکنه
چندتا فیلد دارم مثلا
چوب
ساغر
غلامعلی
میلگرد
اسپری
رادیو
نگهبانی
و ....
حالا دارای تایپ میکنی
به هیچ عنوان نمی تونی بگی بعد از space چه کلمه تایپ میشه مگر اینکه تایپ کنی
کلمه بعدی به قبلی هیچ ربطی نداره
من یهevent textbox برای datagridview تو EditingControlShowingگذاشتم
امیدوارم منظورم رسونده باشم دوست من
بعد از space باز هم AutoCommplete شه
متنهای قبلی به هیچ عنوان تغییر نکنه و به متن قبلی اضافه شه
و....
نقل قول: AutoComplete کردن textbox
من متوجه نظورتون شدم . حرف من اینه که کسی این کارو انجام نمیده . شما می تونی یه سرچ کارکتری با like برای تکست بزاری که نتیجه کوئری رو تو گرید برات نشون بده و با زدن هر کاراکتر محدودیت نمایش گرید عوض بشه
نقل قول: AutoComplete کردن textbox
ممنون از زمانیکه برای این موضوع گذاشتی
ما کاراکترهای مشابه هم زیاد داریم
مثل : ماتریال ٰ ماتریالیسم ٰ ماتریان ٰ ماتریانوس و ...
حالابا این شرایط طرف باید تا ته اش تایپ کنه تا به منظورش برسه و چه کاری AUTOCOMMPLET رو استفاده کنه
اگه بخواد بره کلیک کنه تا انتخاب شه از گرید ویو دیگه ROW VALIDETED میشه و اصلا مناسب نیست
یه textbox فقط یه کلمه نداره ممکنه هزار و یک کلمه داشته باشه
قراره تو همون جا با قابلیتش این کارو بکنه
من پیدا نکردم راحه حشو . ولی میدونم یه راه داره
لطفا اگه کسی می دونه جواب بده ممنون
نقل قول: AutoComplete کردن textbox
چرا نمیگی مثل خود سی شارپ که هرچی تایپ کنی معادلش یا خودش میاد یا مثل فایر فکس!
دوات پیش خودمه ! ببین از مرز گذشتست (اخراجی ها):قهقهه:
دوست عزیز این موردی رو که میگید تو یه کامپوننت به نام rad textbox وجود داره! که تو خاصیت هاش هست . اما باید اول مجموعش رو نصب کنید تا بتونید از تمامی امکانات این مجموعه کامپوننت بی نظیر استفاده کنید. البته میتونید جداگونه refrence بدید.که به میل خودتون بستگی داره!
اگه دوست دارید میتونید برام میل بزنید تا این کامپوننت رو براتون بفرستم.
موفق باشید.