PDA

View Full Version : عدم انتخاب محتویات تکست باکس



فاطمه وطن دوست
جمعه 04 بهمن 1387, 19:25 عصر
سلام
چطوری میشه امکان انتخاب محتویات یک تکست باکس رو از بین ببریم ؟

.: نکته :. (البته خاصیت Enable تکست باکس باید فعال باشه !)


میخوام وقتی کاربر تو کلیپ برد ( متنی ) رو قرار داده و بخواد تو یه تکست باکسی الصاق کنه،

نتونه این کارو انجام بده ، البته در رویداد GotFocus تکست باکس مربوطه ،


"" Clipboard.SetText


رو نوشتم ولی بازم عمل نمیکنه ، یعنی با انتخاب محتویات تکست باکس و Paste کردن

محتویات قبلی تکست باکس هم از بین میره .

vbhamed
جمعه 04 بهمن 1387, 23:25 عصر
سلام
بايد قبل از قرار دادن چيزي در كليپ برد متد Clear رو فراخوني كنيد و چون هدف شما پاك كردن كليپ بورد هست پس ديگه لازم نيست رشته خالي رو توش بنويسيد
فقط دستور زير رو تو GotFocus بنويسيد

Clipboard.Clear

parselearn
شنبه 05 بهمن 1387, 00:34 صبح
چرا خاصيت Locked رو True نمي كنيد ؟!

sina_saravi1
شنبه 05 بهمن 1387, 00:46 صبح
چرا خاصيت Locked رو True نمي كنيد ؟!

سلام
بازم میشه از متن درون تکست باکس کپی گرفت
Locked برای عدم تغییر متن درون تکست باکسه

Pr0grammer
شنبه 05 بهمن 1387, 00:49 صبح
توی MouseMove مربوط به Text اینو بنویسید :

Text1.SelLength = 0

sina_saravi1
شنبه 05 بهمن 1387, 01:24 صبح
توی MouseMove مربوط به Text اینو بنویسید :

Text1.SelLength = 0

سلام دوست عزیز
اگه کاربر با کیبرد این کار رو انجام بده چی؟
به نظر من برای اینکه کاربر نتونه این کار رو انجام بده 2 راه وجود داره:
1 - استفاده از لیبل به جای تکست باکس
2 - قرار دادن تکست باکس درون یک فریم و False کردن Enable فریم
با راه دوم تکست باکس رنگش رو از دست نمیده( خلاصه تابلو نمیشه )

noorsoft
شنبه 05 بهمن 1387, 06:47 صبح
البته در رویداد GotFocus تکست باکس مربوطه ،


"" Clipboard.SetText


رو نوشتم ولی بازم عمل نمیکنه ، یعنی با انتخاب محتویات تکست باکس و Paste کردن

محتویات قبلی تکست باکس هم از بین میره .




پاک کردن ClipBoard یکی از راههایی که پیشنهاد شده ولی اگه دقت کرده باشین برنامه هایی که امکان Paste را به کاربر نمی دن ClipBoard را هم از بین نمی برند چون این حافظه در کل برنامه های ویندوز مشترک است و ممکن است کاربر بخواهد متنی را که کپی کرده جای دیگری استفاده کند پس بهترین راه اینه که محتویات قبلی را در یک متغیر ذخیره کنید و بعد حافطه را پاک کندی و در آخر دوباره آن متغیر را با حافظه نسبت دهید



text_GetFocuse

a=ClipBoard.text
ClipBoard.text=""


Text_LostFocuse
Clibboard.text=a

ولی سوال اصلی شما این بوده که
چطوری میشه امکان انتخاب محتویات یک تکست باکس رو از بین ببریم ؟
انتخاب متن یا با استفاده از صفحه کلید و یا موس انجام میشه شما کافی در رویداد KeyUp و MouseMove این دستور را بنویسید


Text1.SelLength = 0

Mbt925
شنبه 05 بهمن 1387, 18:07 عصر
اعمال تغییر روی محتویات Clipboard در هیچ حالتی درست و اصولی نیست. برای این منظور فقط 1 روش وجود داره: اگه نمی خواید از طریق کلید های ترکیبی کپی و .. انجام بشه از رویداد KeyPress استفاده کنید و کلید های مربوطه رو فیلتر کنید. اگه نمی خواید از طریق کلیک راست این اعمال انجام بشه، امکان کلیک راست رو از جعبه متن مربوطه حذف کنید.