PDA

View Full Version : خاصیت فوکوس



maryamb
شنبه 04 خرداد 1387, 19:27 عصر
چطور به برناممون بفهمونیم که مثلابعد از فلان رویداد یا مثلا زدن فلان دکمه اگه فوکوس روی فلان کنترل نرفت ، این کار رو انجام بده اگه رفت که هیچ .

H4i0 ACP
شنبه 04 خرداد 1387, 20:11 عصر
سلام
می تونید تو رویداد فکوس و lostfocus یه کنترل بگید مقدار یه متغیر بولین رو تغییر بده و بعد اونو چک کنید .

hamed_arfaee
شنبه 04 خرداد 1387, 20:24 عصر
با سلام
با فرمان
me.activecontrol ميشه فهميد كدوم كنترل فوكوس داره
و با فرمان text1.setfocus ميشه مثلا كنترل تسكست 1 رو انتخاب كرد

ali_habibi1384
یک شنبه 05 خرداد 1387, 02:35 صبح
اگه منظورتون انتقال فوکوس بصورت خودکار روی کنترلهاست می تونید از تابع SendKeys استفاده کنید و مثلا با زدن دکمه اینتر Sendkeys "{TAB}" رو بزنید . یعنی اینتر مثل Tab عمل کنه.

maryamb
یک شنبه 05 خرداد 1387, 10:32 صبح
بذارید منظورمو بهتر بگم :
من تو برنامم وقتی رو یکی از دکمه ی ذخیره کلیک می کنم ، اگه داده هایی که واسه ذخیره کردن وارد کرده بودم درست بودن که فوکوس می ره رو تکست 1 که مربوط به یه قسمت دیگه هست و اگه داده های ورودی اشتباه بودن فوکوس رو همون دکمه می مونه
حالا می خوام وقتی این اتفاق افتاد و فوکوس رو تکست 1 نرفت یه پیغام هم به کاربر بده که کاربر متوجه اشتباهش بشه
ولی نمی دونم چطوری اینو به برنامه بفهمونم

maryamb
یک شنبه 05 خرداد 1387, 10:35 صبح
می تونید تو رویداد فکوس و lostfocus یه کنترل بگید مقدار یه متغیر بولین رو تغییر بده و بعد اونو چک کنید
با این روش نمی شه چون به دلایل مختلفی ممکنه دکمه ی من فوکوس رو بگیره یا از دست بده.
مثل کلیک نا خواسته ی کاربر. و من به هدفم نمی رسم.
شما فقط بگید چطوری باید بگم اگه بعد از کلیک کردن فوکوس به تکست 1 منتقل نشد فلان پیغام رو نشون بده اگه منتقل شد که هیچ

ASKaffash
دوشنبه 06 خرداد 1387, 07:53 صبح
با سلام
دوست عزیز از متد SetFocus استفاده کنید مثل:

Private Sub Command1_Click()
Me.Text1.SetFocus
End Sub

maryamb
دوشنبه 06 خرداد 1387, 09:06 صبح
دوست عزیز من تو کل برنامم از این خاصیت استفاده می کنم.
اصلا منظور منو درست متوجه نشدید.

ASKaffash
دوشنبه 06 خرداد 1387, 09:55 صبح
با سلام
لطفا آن بخش کد را جهت اصلاح توسط دوستان قرار دهید

bobrus
دوشنبه 06 خرداد 1387, 10:09 صبح
1-اين دوستمون جوابتون رو دادن


با سلام
با فرمان
me.activecontrol ميشه فهميد كدوم كنترل فوكوس داره

2- فكر كنم منطق برنامت مشكل داره بهتره بجاي چك كردن فكوس براي صحت داده هاي وردي توسط كاربر خود داده ها رو چك كني ببيني كاربر درست وارد كرده يا نه

maryamb
دوشنبه 06 خرداد 1387, 10:47 صبح
بهتره بجاي چك كردن فكوس براي صحت داده هاي وردي توسط كاربر خود داده ها رو چك كني ببيني كاربر درست وارد كرده يا نه
این کارو که کردم ، ولی برای یه قسمت از برنامم مجبورم این کارو کنم.
مرسی از پاسخ گویی همه ی دوستان
خودم یه جوری حلش می کنم.

vbhamed
دوشنبه 06 خرداد 1387, 11:16 صبح
سلام

رويداد Validate براي همين كار گذاشته شده

اگر مثلا Text1 رو داشته باشيم، تو رويداد Text1_Validate قسمت كنترل صحت اطلاعات رو بزاريد و اگر اطلاعات اشتباه وارد شده بود در همين رويداد دستور Cancel = True رو بدين، اينطوري نيازي به رويدادهاي Lost_Focus و Got_Focus هم نيست و با دادن دستور بالا كاربر اصلا از Text1 نمي‌تونه خارج بشه

همين جا هم مي تونيد پيام مورد نظرتون رو به كاربر بدين

SeyedMoosavi
دوشنبه 06 خرداد 1387, 11:30 صبح
به نظر من کلا مدل برنامه رو عوض کن
یعنی برای اینکه به کاربر به فهمونی اشتباه کرده نمی خواد خودت از اینکه text فوکوس داره یا نه استفاده کنی از یه راه دیگه استفاده کن

maryamb
دوشنبه 06 خرداد 1387, 16:31 عصر
مرسی از همگی ، جریان اینه که من اول رویداد کلیک مربوط به یه دکمه ای ، کد on error goto m رو گذاشتم که اگه احتمالا خطایی شد بره به m و m هم پایان تابع هست ، یعنی با این کار دکمه ی زده شده در صورت خطا کار خودش رو انجام نمی ده ، منم اینهمه جریانات رو واسه این می خوام.
وقتی دکمه کار خودشو درست انجام بده تکست 1 فوکوس رو میگیره ، ولی اگه اروری در کار باشه دکمه کار خودشو انجام نمی ده و فوکوس به تکست 1 نمی ره و رو دکمه می مونه.
اینجا می خواستم یه پیامی بده.ولی بلاخره نفهمیدم می شه یا نه.
این رو واسه خطاهای احتمالی پیش بینی کرده بودم که حالا انگار باید بیخیال شم !!!

vbhamed
دوشنبه 06 خرداد 1387, 16:52 عصر
سلام
چرا نشه
شما كه ميگين دستور On Error GoTo m رو گذاشتين، خب يعني وقتي بياد به m پس خطا رخ داده، همين جا مي تونيد پيام رو بدين

saghez
چهارشنبه 09 بهمن 1387, 12:33 عصر
از
دستور زیر استفاده کنید
()text1.foucus