PDA

View Full Version : روال نویسی برای همه کنترل ها



omid-vbAuto
سه شنبه 30 آذر 1389, 12:11 عصر
با سلام خدمت دوستان عزیزم

من چندتا Textbox رو فرمم دارم و می خوام یه تابع یا روالی کلی بنویسم تا وقتی که یکی از Textbox ها فوکوس رو گرفتن رنگ پس زمینشون تغییر کنه.

البته می تونم تک تک این کارو بکنم . ولی می خوام یه روال کلی برای این کار بنویسم تا حجم کدهام پایین بیاد.


با تشکر.

Navid Asadi
سه شنبه 30 آذر 1389, 13:03 عصر
از کدی مثل کد زیر استفاده کن

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress
If Not IsNumeric(e.KeyChar) And e.KeyChar <> Convert.ToChar(Keys.Back) And e.KeyChar <> Convert.ToChar(Keys.Delete) Then e.Handled = True
If e.KeyChar = Chr(Keys.Escape) Then Timer2.Start()
End Sub


این کد دستورات رو برای keypress دو textbox اعمال میکنه
برای پیدا کردن textbox هم از e استفاده کن

omid-vbAuto
سه شنبه 30 آذر 1389, 13:54 عصر
از کدی مثل کد زیر استفاده کن

Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress, TextBox2.KeyPress
If Not IsNumeric(e.KeyChar) And e.KeyChar <> Convert.ToChar(Keys.Back) And e.KeyChar <> Convert.ToChar(Keys.Delete) Then e.Handled = True
If e.KeyChar = Chr(Keys.Escape) Then Timer2.Start()
End Sub


این کد دستورات رو برای keypress دو textbox اعمال میکنه
برای پیدا کردن textbox هم از e استفاده کن



نوید جان اصلا سوال منو خوندی؟این چه ربطی به سوال من داره؟!!!

Felony
سه شنبه 30 آذر 1389, 14:48 عصر
Dim temp As Control
For Each temp In Me.Controls
If temp.GetType() = GetType(TextBox) Then
temp.BackColor = Color.Red
End If
Next

omid-vbAuto
سه شنبه 30 آذر 1389, 17:47 عصر
Dim temp As Control
For Each temp In Me.Controls
If temp.GetType() = GetType(TextBox) Then
temp.BackColor = Color.Red
End If
Next


مهندس من از کد زیر استفاده کردم ولی ایراد زیر رو گرفت کمک کنید:





Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim temp As Control
For Each temp In Me.Controls
If temp.GetType() = GetType(TextBox) Then
temp.BackColor = Color.Red
End If
Next
End Sub





ایراد:





Error 1 Operator '=' is not defined for types 'System.Type' and 'System.Type'.

alimanam
سه شنبه 30 آذر 1389, 18:21 عصر
با سلام

به نظر بنده واسه همچین کاری باید یه کنترل سفارشی بنویسین که همیشه از این کنترل درآینده ( پروژه های آینده ) بدون کوچکترین کدنویسی استفاده ببرین . موفق باشید .

در فایل ضمیمه من این کار رو برای شما انجام دادم .

omid-vbAuto
سه شنبه 30 آذر 1389, 19:54 عصر
با سلام

به نظر بنده واسه همچین کاری باید یه کنترل سفارشی بنویسین که همیشه از این کنترل درآینده ( پروژه های آینده ) بدون کوچکترین کدنویسی استفاده ببرین . موفق باشید .

در فایل ضمیمه من این کار رو برای شما انجام دادم .

علی جون کارتون عالی بود مرسی.

ولی هدف من این بود که کدنویسی های زیاد رو با یه کد نویسی مرجع کم کنم.

اگه این کارو بشه با کد نویسی انجام داد خیلی عالی میشه.

alimanam
سه شنبه 30 آذر 1389, 20:36 عصر
با سلام

روش صحیحش همون بود که گفتم اما اگه مرغ یه پا داره این کدش : :عصبانی++:


Public Class Form1

Private Sub ChangeBackcolor1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox3.Enter
sender.backcolor = Color.LightPink
End Sub

Private Sub ChangeBackcolor2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus
sender.backcolor = Color.White
End Sub

End Classموفق باشی

omid-vbAuto
سه شنبه 30 آذر 1389, 22:07 عصر
با سلام

روش صحیحش همون بود که گفتم اما اگه مرغ یه پا داره این کدش : :عصبانی++:


Public Class Form1

Private Sub ChangeBackcolor1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox3.Enter
sender.backcolor = Color.LightPink
End Sub

Private Sub ChangeBackcolor2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.LostFocus, TextBox2.LostFocus, TextBox3.LostFocus
sender.backcolor = Color.White
End Sub

End Classموفق باشی


ضمن تشکر از سایر دوستان ولی

کار را که کرد؟ آنکه تمام کرد.

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

یه سوال ساده:

خوب رخداد LostFocus که تابلو هست یعنی چی.
ولی اگه خاطرتون باشه ما یه رخداد تو VB6 داشتم به اسم GetFocus حالا سوال من اینه که این رخداد تو VB.Net جاشو به رخداد Enter داده؟

alimanam
چهارشنبه 01 دی 1389, 19:29 عصر
ولی اگه خاطرتون باشه ما یه رخداد تو VB6 داشتم به اسم GetFocus حالا سوال من اینه که این رخداد تو VB.Net جاشو به رخداد Enter داده؟

سلام

احتمالاً همین طوره :گیج: موفق باشی

Navid Asadi
چهارشنبه 01 دی 1389, 21:27 عصر
این کد دقیقا مربوط به همون کاری هست که می خوای بکنی!
این کار رو برای gotfocous تکست باکس هات انجام بده و با پارامتر e رو کنترل هات مدیریت کن