• 0
VB Helper

أدوات مفتوحة المصدر

سؤال

السلام عليكم ورحمه الله وبركاته

لاحظت ركودا بسيطا في الاونة الاخيره في أقسام الدوت نت لذا حاولت ان افكر في بعض الطرق لإعطاء هذه الاقسام رونقها وازدهارها من جديد, فكما نرى ان هناك الكثير من الـ Third-Party التي تعمل ادوات لبيئة الدوت نت مثل DevX و telerik وغيرهما لذا فكرت في عمل أدوات مفتوحة المصدر OpenSource Controls فأرجو من الاعضاء التفاعل وانشاء أدوات تخدم المبرمجين العرب والاستفادة من اكوادها.

اقدم اول اداة IPTextBox وهي عبارة عن اداة تسمح بادخال عنوان IP وهذا هو الكود الخاص بها


Public Class IPTextBox

Public ReadOnly Property IP As String
'Get the IP from TextBoxes
Get
If String.IsNullOrEmpty(txtNumber1.Text) AndAlso String.IsNullOrEmpty(txtNumber2.Text) AndAlso String.IsNullOrEmpty(txtNumber3.Text) AndAlso String.IsNullOrEmpty(txtNumber4.Text) Then
Return Nothing
Else
Return String.Format("{0}.{1}.{2}.{3}", txtNumber1.Text, txtNumber2.Text, txtNumber3.Text, txtNumber4.Text)
End If
End Get
End Property

Private Sub txtNumber_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumber1.KeyPress, txtNumber2.KeyPress, txtNumber3.KeyPress, txtNumber4.KeyPress
'Disable all the keys except the digits and backspace
If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8)) Then
e.Handled = True
End If
End Sub

Private Sub txtNumber_TextChanged(sender As Object, e As System.EventArgs) Handles txtNumber1.TextChanged, txtNumber2.TextChanged, txtNumber3.TextChanged, txtNumber4.TextChanged
'Chech whether the current TextBox has 3 digits, if so move the focus into the next TextBox
Dim currentTextBox As TextBox = DirectCast(sender, TextBox)
If currentTextBox.Text.Length = 3 Then
Select Case currentTextBox.Name
Case "txtNumber1"
txtNumber2.Focus()
Case "txtNumber2"
txtNumber3.Focus()
Case "txtNumber3"
txtNumber4.Focus()
End Select
End If
End Sub

Private Sub txtNumber_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtNumber1.Validating, txtNumber2.Validating, txtNumber3.Validating, txtNumber4.Validating
'Check whether the number in the range 0 - 255
Dim currentTextBox As TextBox = DirectCast(sender, TextBox)
Dim number As Short = Convert.ToInt16(If(currentTextBox.Text.Trim().Length = 0, 0, currentTextBox.Text))
If number < 0 OrElse number > 255 Then
MessageBox.Show(String.Format("{0} is not a valid entry. Please specify a value between 0 and 255", number), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
e.Cancel = False
currentTextBox.SelectionStart = 0
currentTextBox.SelectionLength = currentTextBox.Text.Length
currentTextBox.Focus()
End If
End Sub

End Class

ارفقت المشروع للفائدة

WindowsApplication1.zip

تم تعديل بواسطه VB Helper
5

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

31 إجابة على هذا السؤال .

  • 1

السلام عليكم ورحمه الله وبركاته

اقدم ثاني اداة ColorPicker وهي عبارة عن اداة تسمح بإختيار لون عبر الالوان الاساسية RGB وهذا هو الكود الخاص بها


Public Class ColorPicker
Public Property Color As Color
Get
Return lblColor.BackColor
End Get
Set(value As Color)
lblColor.BackColor = value
lblRed.BackColor = Color.FromArgb(value.R, 0, 0)
lblGreen.BackColor = Color.FromArgb(0, value.G, 0)
lblBlue.BackColor = Color.FromArgb(0, 0, value.B)
nudRed.Value = value.R
nudGreen.Value = value.G
nudBlue.Value = value.B
End Set
End Property
Private Sub nudRed_ValueChanged(sender As System.Object, e As System.EventArgs) Handles nudRed.ValueChanged
lblRed.BackColor = Color.FromArgb(nudRed.Value, 0, 0)
lblColor.BackColor = Color.FromArgb(nudRed.Value, nudGreen.Value, nudBlue.Value)
End Sub

Private Sub nudGreen_ValueChanged(sender As System.Object, e As System.EventArgs) Handles nudGreen.ValueChanged
lblGreen.BackColor = Color.FromArgb(0, nudGreen.Value, 0)
lblColor.BackColor = Color.FromArgb(nudRed.Value, nudGreen.Value, nudBlue.Value)
End Sub

Private Sub nudBlue_ValueChanged(sender As System.Object, e As System.EventArgs) Handles nudBlue.ValueChanged
lblBlue.BackColor = Color.FromArgb(0, 0, nudBlue.Value)
lblColor.BackColor = Color.FromArgb(nudRed.Value, nudGreen.Value, nudBlue.Value)
End Sub
End Class

ارفقت المشروع للفائدة

WindowsApplication1.zip

3

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاك الله خير .

لو بالإمكان تعمل أداة للتاريخ تكست واحد مقسم إلى ثلاث خانات مثل اللي بالمرفقات.

ولكن تحتاج لتعديل مثلا عند النقر بالماوس على خانة اليوم يتم تحديده وكذلك الشهر والسنة

... تحياتي

ArabicDate.rar

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

مشكور يا مشرفنا الغالي دائما ً متئلق

في الحقيقة لسيت لدي خبرة في الفيجول بيسك لكن حبيت ان اشكرك على مجهودك الطيب وحرصك على تنشيط المنتدى

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمة الله وبركاته.

راااااائع جداً :clapping:

تشكر اخ VB Helper الله يعطيك العافية على هذه المبادرة الطيبة .

* بس أنا عندي تعليق لو كان الموضوع في القسم العام للدوت نت تحت نفس العنوان (أدوات مفتوحة المصدر)

بحيث أنه اللي حاب يبرمج الادوات يبرمجها باللغة المفضلة عنده سواءاً VB.NET أو #C .

يعني مراعاة للاشخاص الغير ملمين بالـ VB.Net او انهم حابين يبرمجون بالسي شارب (زيي مثلاً :happy: ) .

اعتقد كذا راح يكون اكثر تفاعلا . و لا ايش رأيك؟؟

----

* بالنسبة لي إلى الان لم اجرب إنشاء User Control مطلقاً .عجبتني فكرة الاداة الاولى IPTextBox , فمن باب اني اخوض تجربة جديدة في هذا المجال و منها اضرب عصفورين بحجر سأبحث عن كيفية عمل يوزر كنترول و من ثم اطبق ذلك على نفس فكرة الاداة الاولى -تقليد- لكن للـ IPv6 يعني سيكون اسم الاداة IPv6TextBox , وطبعاً بلغة السي شارب . احببت ان ارى تطبيق الاداة الاولى كي استوعب أكثر لكن واجهتني مشكلة -الموضحة في الصورة ادناه- عند فتح المرفق الاول IPTextBox , فما السبب ؟؟!

اخترت Ignore and continueوعملت Rebuild للمشروع ظهر لي 20 خطأ !!

* أتنمى ان تكون مشاركتي خفيفة عليكم.

post-245748-086033000 1316231567_thumb.j

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

لو بالإمكان تعمل أداة للتاريخ تكست واحد مقسم إلى ثلاث خانات مثل اللي بالمرفقات.

ولكن تحتاج لتعديل مثلا عند النقر بالماوس على خانة اليوم يتم تحديده وكذلك الشهر والسنة

اخي محمدVB الهدف من الموضوع هو إفادة انفسنا وإفادة غيرنا على تطوير ادوات تخدمنا كمبرمجين عرب, اشكرك على المشاركة, وارجوا منك المحاوله لتصميم هذه الأداة بالشكل الذي اقترحته -ليس امرا- لتطور مهاراتك وتستفيد اكثر. ارجو منك المحاولة

مشكور يا مشرفنا الغالي دائما ً متئلق
في الحقيقة لسيت لدي خبرة في الفيجول بيسك لكن حبيت ان اشكرك على مجهودك الطيب وحرصك على تنشيط المنتدى

لاشكر على واجب اخي M.B.O

* بس أنا عندي تعليق لو كان الموضوع في القسم العام للدوت نت تحت نفس العنوان (أدوات مفتوحة المصدر)

بحيث أنه اللي حاب يبرمج الادوات يبرمجها باللغة المفضلة عنده سواءاً VB.NET أو #C .

يعني مراعاة للاشخاص الغير ملمين بالـ VB.Net او انهم حابين يبرمجون بالسي شارب (زيي مثلاً happy.gif ) .

اعتقد كذا راح يكون اكثر تفاعلا . و لا ايش رأيك؟؟

شكرا اختي Rose Muhammed لقد خطر ببالي جعل الموضوع عم, ولكن احببت ان يكون لكل قسم موضوع تفاعلي اخر لتعم الفائدة, وارجوا الا تبخلوا علينا بأفكاركم. اما بالنسبة للأداة IPvTextBox حلوة مرة ارجو منك تطبيقها وافادتنا, اما بالنسبة لرسالة الخطأ حاولي عمل Build للمشروع وتأكدي من ظهور الاداة IPTextBox في مربع الادوات

بالتوفيق للجميع ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عليكم السلام ورحمة الله وبركاته

شكرا اختي Rose Muhammed لقد خطر ببالي جعل الموضوع عم, ولكن احببت ان يكون لكل قسم موضوع تفاعلي اخر لتعم الفائدة, وارجوا الا تبخلوا علينا بأفكاركم. اما بالنسبة للأداة IPvTextBox حلوة مرة ارجو منك تطبيقها وافادتنا, اما بالنسبة لرسالة الخطأ حاولي عمل Build للمشروع وتأكدي من ظهور الاداة IPTextBox في مربع الادوات

عملت Build للمشروع لكن لازالت المشكلة موجودة , عموماً أنا اكتفيت بالكود السابق وعملت أداة IPv6TextBox لكن بالسي شارب , ارفقها هنا؟؟!

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

حلو لو حبيت اقرا الآيبي من الأداة هكذا

 MessageBox.Show(IpTextBox1.IP)

طيب لو حبيت اكتب الآيبي في الأداة

يعني عندي رقم آيبي وابي اكتبه في الأداة كيف يكون الكود؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي ارجو ان تعمليها بالفيجوال بيسك

اخي محمد vb قم بتجريب الكود التالي

IpTextBox1.IP="127.0.0.1"

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

اختي ارجو ان تعمليها بالفيجوال بيسك

اخي محمد vb قم بتجريب الكود التالي

IpTextBox1.IP="127.0.0.1"

عليكم السلام ورحمة الله وبركاته

اعتقد انك عرفت خاصيةreadonly IP وكمان فيها Get بس . كيف راح يسند لها قيمة عن طريق هذا الكود

IpTextBox1.IP="127.0.0.1"

انا اللي فاهمته انه المفروض يدرج ال IpTextBox ويكتب الاي بي داخله :mellow:

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

شكرا لك اختي بالفعل, عملت الخاصية للقراءة والكتابة في جهازي ولكن تم ارسال الاداة مع خاصية القراءة فقط, يمكنك اخي اضافة البلوك Set وعمل ما يلزم ..

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

شكرا اختي على المجهود الرائع .. جاري التطبيق ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

لاشكر على واجب .. بالتوفيق ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

أبداع

تسلم على الموضوع المفيد

وفكره رائعه

الله يعطيك العافيه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

الله يعافيك اخي .. بالتوفيق ..

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

لا شكر على واجب ...

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

موضوع رائع صراحة ومجهود تشكر عليه

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

عندى قصور فى هذا الموضوع برغم علمى أته مهم جدا

ابحث عن اماكن التعلم ولم اجد

ارجو عمل اداة مع الشرح المستفيض عن اداة مكتبة ربط قاعدة بيانات بفيجوال بيسك واستعمال بيندنج سورس

مع امكانية التنقل للأمام والخلف وهكذا

تقبل تحياتى

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

موضوع رائع صراحة ومجهود تشكر عليه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

جزاكم الله كل الخير

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

بارك الله فيك

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

السلام عليكم ورحمه الله وبركاته

لاحظت ركودا بسيطا في الاونة الاخيره في أقسام الدوت نت لذا حاولت ان افكر في بعض الطرق لإعطاء هذه الاقسام رونقها وازدهارها من جديد, فكما نرى ان هناك الكثير من الـ Third-Party التي تعمل ادوات لبيئة الدوت نت مثل DevX و telerik وغيرهما لذا فكرت في عمل أدوات مفتوحة المصدر OpenSource Controls فأرجو من الاعضاء التفاعل وانشاء أدوات تخدم المبرمجين العرب والاستفادة من اكوادها.

اقدم اول اداة IPTextBox وهي عبارة عن اداة تسمح بادخال عنوان IP وهذا هو الكود الخاص بها

 

Public Class IPTextBox	Public ReadOnly Property IP As String    	'Get the IP from TextBoxes    	Get        	If String.IsNullOrEmpty(txtNumber1.Text) AndAlso String.IsNullOrEmpty(txtNumber2.Text) AndAlso String.IsNullOrEmpty(txtNumber3.Text) AndAlso String.IsNullOrEmpty(txtNumber4.Text) Then            	Return Nothing        	Else            	Return String.Format("{0}.{1}.{2}.{3}", txtNumber1.Text, txtNumber2.Text, txtNumber3.Text, txtNumber4.Text)        	End If    	End Get	End Property	Private Sub txtNumber_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtNumber1.KeyPress, txtNumber2.KeyPress, txtNumber3.KeyPress, txtNumber4.KeyPress    	'Disable all the keys except the digits and backspace    	If Not (Char.IsDigit(e.KeyChar) Or e.KeyChar = Chr(8)) Then        	e.Handled = True    	End If	End Sub	Private Sub txtNumber_TextChanged(sender As Object, e As System.EventArgs) Handles txtNumber1.TextChanged, txtNumber2.TextChanged, txtNumber3.TextChanged, txtNumber4.TextChanged    	'Chech whether the current TextBox has 3 digits, if so move the focus into the next TextBox    	Dim currentTextBox As TextBox = DirectCast(sender, TextBox)    	If currentTextBox.Text.Length = 3 Then        	Select Case currentTextBox.Name            	Case "txtNumber1"                	txtNumber2.Focus()            	Case "txtNumber2"                	txtNumber3.Focus()            	Case "txtNumber3"                	txtNumber4.Focus()        	End Select    	End If	End Sub	Private Sub txtNumber_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtNumber1.Validating, txtNumber2.Validating, txtNumber3.Validating, txtNumber4.Validating    	'Check whether the number in the range 0 - 255    	Dim currentTextBox As TextBox = DirectCast(sender, TextBox)    	Dim number As Short = Convert.ToInt16(If(currentTextBox.Text.Trim().Length = 0, 0, currentTextBox.Text))    	If number < 0 OrElse number > 255 Then        	MessageBox.Show(String.Format("{0} is not a valid entry. Please specify a value between 0 and 255", number), "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)        	e.Cancel = False        	currentTextBox.SelectionStart = 0        	currentTextBox.SelectionLength = currentTextBox.Text.Length        	currentTextBox.Focus()    	End If	End SubEnd Class
ارفقت المشروع للفائدة

 

السلام عليكم أخي شكرا على موضوعك المهم وطالب مساعدتك أذا أمكن لدي بعض الأخطاء في مشروعي سأرفق لك الملف لكي تطلع عليه

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .