View Full Version : سوال: نشون دادن کلمه مشابه در یک TextBox
shahmahi
چهارشنبه 27 آبان 1388, 22:12 عصر
سلام
دوستان عزیز میخوام بدونم چطوری میشه که وقتی کاربری در یک تکس باکس در حال وارد کردن کلمه ای است، کلماتی رو که مشابه کلمه کاربر هستش رو جلوتر درون TextBox نشون داد.
فرض بر این هستش که این تکس باکس با یک پایگاه داده درارتباط هستش و کلمات مشابه رو از اونجا نشون میده .
ممنون میشم راهنماییم کنید .:چشمک:
Beyondsoft
چهارشنبه 27 آبان 1388, 23:31 عصر
سلام دوست عزیز !
تا اونجا که من اطلاع دارم به صورت پیش فرض ابزاری برای suggestion وجود ندارد.
یا باید از component ها استفاده کنید (که بنده در vb 6 چنین کاپننتی را سراغ ندارم) اما راه دیگر این است که خود شما یک کامپننت بنویسی !
در واقع کامپننت شما در زمان textchange می رود به دیتابیس و چک می کند، اگر کلمه ای با این مشاهبت در دیتابیس وجود داشت، یک lalbe کم رنگ ظاهر می شود در مقابلش، که کاربر با زدن کلید Enter می تواند عملیات autocomplete را انجام دهد.
pcdownload.bloghaa.com
پنج شنبه 28 آبان 1388, 09:54 صبح
بهتره يه ليست باكس زير تكست باكس مورد نظر قرار بدي و در رويداد change تكست باكس كد جستجو
در بانك اطلاعاتي را وارد كني كه كلمات يافت شده را در ليست نشان دهد و با هر بار تغيير متن محتواي ليست پاك ودوباره ليست جديد اضافه شود.
من زياد اهل بانك اطلاعاتي نيستم چون براي راحتي كار خودم يه فرمت بانك اطلاعاتي ميسازم وازش
استفاده مي كنم.مثلا برنامه شما را به روش خودم مينويسم:
دوتا تكست باكس در فرم قرار داده ويك ليست باكس زير text1 قرار دهيد و كد زير را در برنامه بنويسيد:
text1_textchange
dim a() as string
a=split(text2,"&")
for i=0 to ubound(i)
if instr(a(i),text1)<>0 then
list1.additem a(i)
end if
و كلمات مورد نظر را به جاي بانك اطلاعاتي در text2 به صورت زير مينويسيم:
مثلا اگر كلمات or,xor,ali,mp3,oranium باشند در تكست باكس 2 به صورت
or&xor&ali&mp3&oranium
مينويسيم خوبي چنين برنامه اي پورتابل بودن آن از نظر بانك اطلاعاتي است.
(http://pcdownload.bloghaa.com)
shahmahi
پنج شنبه 28 آبان 1388, 20:02 عصر
دوستان گرامی کسی نیست اطلاعاتی در این باره داشته باشه که بتونه به من کمک کنه.
ali_habibi1384
شنبه 30 آبان 1388, 07:37 صبح
من با pcdownload موافق نیستم چرا که وقتی پایگاه داده بزرگتر بشه CPU باید کل وقتش رو بزاره واسه پر و خالی کردن لیست باکسها و هم اتصال اون به دیتابیس. من در برنامه هام از این شیوه استفاده کردم و موفق هم بوده : در این روش شما بجای لیست باکس یه Datagrid میزاری و اونو وصل می کنی به چیزی که میخوای لیست بشه و با زدن هر کلید در تکست باکس دیتا گرید رو فیلتر میکنی اینجوری هم سرعت فیلترت بالا میره هم نیازی به پر و خالی کردن لیست باکس نداریم. تازه کد کمتری رو هم می نویسیم. نظرتون چیه؟
shahmahi
شنبه 30 آبان 1388, 09:20 صبح
در این روش شما بجای لیست باکس یه Datagrid میزاری و اونو وصل می کنی به چیزی که میخوای لیست بشه و با زدن هر کلید در تکست باکس دیتا گرید رو فیلتر میکنی
میبخشی من متوجه منظورت نمیشم، میشه یک برنامه نمونه بزاری تا کدهاشو نگاه کنم.درضم من منظورم از کلمه مشابه حرف به حرف کلمه بود نه کل کلمه به این هم دقت کنید. :چشمک:
ali_habibi1384
جمعه 16 بهمن 1388, 11:48 صبح
درضم من منظورم از کلمه مشابه حرف به حرف کلمه بود نه کل کلمه به این هم دقت کنید. :چشمک:
وقتی بخوای فیلتر کنی اینو هم مد نظر میگیری دیگه مثلا توی فیلتر بجای مساوی از like استفاده می کنی:
"fieldname like '" & text1.text & "%'"
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.