PDA

View Full Version : تمرکز در تکس باکس



مهدی د
چهارشنبه 13 دی 1391, 18:10 عصر
سلام
برای اینکه رنگ زمینه یک تکس باکس وقتی که آن تکس باکس تمرکز را دریافت می کند زرد شود و وقتی که تمرکز را از دست می دهد رنگ زمینه به زنگ قبلی برگردد و رنگ زمینه تکس باکس جدیدی که تمرکز را دریافت کرده زرد شود از چه کدی می توان استفاده کرد. همچنین برای اینکه بتوان با زدن کلید اینتر ، تمرکز از تکس باکس فعال به تکس باکس بعدی منتقل شود (درست مثل کاری که کلید تب می کند) چه کدی می توان استفاده کرد.

tstsst
چهارشنبه 13 دی 1391, 18:22 عصر
سلام


Private Sub TB_GotFocus(sender As Object, e As EventArgs) Handles TB.GotFocus
TB.BackColor = Color.LightYellow
End Sub

Private Sub TB_LostFocus(sender As Object, e As EventArgs) Handles TB.LostFocus
TB.BackColor = Color.White
End Sub

ghayour
چهارشنبه 13 دی 1391, 18:42 عصر
همچنین برای اینکه بتوان با زدن کلید اینتر ، تمرکز از تکس باکس فعال به تکس باکس بعدی منتقل شود (درست مثل کاری که کلید تب می کند) چه کدی می توان استفاده کرد.

If e.KeyCode = Keys.Enter Then
txtname.Focus()
End If

اگه جستجو کنی مطمئنا چیزای بیشتری پیدا می کنی.

راستی اینو باید در رویداد keydown تکست باکس بنویسی.

asghar2008
چهارشنبه 13 دی 1391, 18:43 عصر
سلام
برای اینکه رنگ زمینه یک تکس باکس وقتی که آن تکس باکس تمرکز را دریافت می کند زرد شود و وقتی که تمرکز را از دست می دهد رنگ زمینه به زنگ قبلی برگردد و رنگ زمینه تکس باکس جدیدی که تمرکز را دریافت کرده زرد شود از چه کدی می توان استفاده کرد.

سلام

یه روش ساده اینه که از کامپوننت های DevComponent استفاده کنی.تکست باکس Devcomponent یه خاصیتی به نام FocusHighlightEnabled داره که اگه اون رو true کنی همین کارو انجام میده.وبرای تعیین رنگ میتونی خاصیت FocusHighlightcolor رو به رنگ مورد نظرت تغییر بدی.

مهدی د
چهارشنبه 13 دی 1391, 18:45 عصر
در برنامه من تعداد فرمها زیاده و در هر فرم هم تعداد زیادی تکس باکس وجود داده اگه در رویداد GotFocus و LostFocus تمامی تکس باکس ها این کدها را قرار بدهیم ، کدهای برنامه خیلی زیاد می شود روش دیگری برای این کا وجود نداره؟

asghar2008
چهارشنبه 13 دی 1391, 18:49 عصر
از TextBox های Devcomponent استفاده کن. فقط کافیه خاصیت FocusHighlightEnabled رو True کنی. بدونه هیچ کد نویسی.

gilsoft
پنج شنبه 14 دی 1391, 00:52 صبح
سلام
برای اینکه رنگ زمینه یک تکس باکس وقتی که آن تکس باکس تمرکز را دریافت می کند زرد شود و وقتی که تمرکز را از دست می دهد رنگ زمینه به زنگ قبلی برگردد و رنگ زمینه تکس باکس جدیدی که تمرکز را دریافت کرده زرد شود از چه کدی می توان استفاده کرد. همچنین برای اینکه بتوان با زدن کلید اینتر ، تمرکز از تکس باکس فعال به تکس باکس بعدی منتقل شود (درست مثل کاری که کلید تب می کند) چه کدی می توان استفاده کرد.

سلام دوست عزیز
ضمن تائید پست 2# ... من کد زیر رو پیشنهاد میدم :
Private _MainBackColor As Color

Private Sub TextBox1_Enter(sender As Object, e As System.EventArgs) Handles TextBox1.Enter
_MainBackColor = TextBox1.BackColor
TextBox1.BackColor = Color.Yellow
End Sub

Private Sub TextBox1_Leave(sender As Object, e As System.EventArgs) Handles TextBox1.Leave
TextBox1.BackColor = _MainBackColor
End Sub
موفق باشید ...

h_a_m_i_d
پنج شنبه 14 دی 1391, 12:54 عصر
دوست عزیز از ارث بری استفاده کن تا هم کنترل بیشتری روی فرم داشته باشی من حالا توضیحات کامل رو میگم
یک کلاس درست کن
این کدها رو توش کپی کن

Inherits System.Windows.Forms.TextBox
Protected Overrides Sub OnGotFocus(ByVal e As System.EventArgs)
MyBase.OnGotFocus(e)
Me.BackColor = Color.Yellow

End Sub
Protected Overrides Sub OnLostFocus(ByVal e As System.EventArgs)
MyBase.OnLostFocus(e)
Me.BackColor = Color.White
End Sub
Protected Overrides Sub OnKeyDown(ByVal e As System.Windows.Forms.KeyEventArgs)
MyBase.OnKeyDown(e)
If e.KeyCode = Keys.Enter Then
SendKeys.Send("{tab}")

End If
End Sub
خوب حالا یک کامپوننت باید با نام همون کلاس براتون اضافه بشه اگه نشد برنامه رو اجرا کنید دوباره قطعش کنید و بعد امتحان کنید بعد به جای textbox از اون کامپوننت استفاده کنید
بازم نمونه پروژه میزارم
موفق باشید
امکاناتش هم
تعویض رنگ در زمان دریافت فوکوس و همچنین از دست دادن ان
ارسال فوکوس به کنترل بعدی با enter

مهرداد صفا
پنج شنبه 14 دی 1391, 15:58 عصر
در برنامه من تعداد فرمها زیاده و در هر فرم هم تعداد زیادی تکس باکس وجود داده اگه در رویداد GotFocus و LostFocus تمامی تکس باکس ها این کدها را قرار بدهیم ، کدهای برنامه خیلی زیاد می شود روش دیگری برای این کا وجود نداره؟
سلام
گر چه شاید طبق گفته دوستان روش وراثت منطقی تر باشد اما در کل از روشهای زیر هم میتوانید برای هندل کردن رویدادها استفاده کنید:
1-

Private Sub TextBox_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles TextBox1.GotFocus, TextBox2.GotFocus, TextBox3.GotFocus
sender.BackColor = Color.Yellow
End Sub
2-

For Each TXTBox As Control In Me.Controls
If TypeOf (TXTBox) Is TextBox Then AddHandler TXTBox.LostFocus, Sub(s, EA) s.backcolor = Color.White
Next