• 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

شارك هذا الرد


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

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

  • 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

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

Imports System.Management
Imports System.Data.SqlClient
Imports Microsoft.Win32



Imports System
Imports System.Collections.Generic
Imports System.Collections.Specialized
Imports System.Text

Imports Microsoft.SqlServer.Management.Common
Imports Microsoft.SqlServer.Management.Smo
Public Class Config
    Dim mac_beg As String
    Dim ip_adress As String
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        Gopos_database.Open()
        Dim mycomm As SqlCommand
        mycomm = New SqlCommand("Select * From Tbl_Drawer", Gopos_database)
        Dim myreader As SqlDataReader = Nothing
        myreader = mycomm.ExecuteReader()
        While myreader.Read

            ComboBox1.Items.Add(myreader("Drawer_ID"))

        End While
        Gopos_database.Close()


        Dim Wmi As New System.Management.ManagementObjectSearcher("SELECT * FROM Win32_NetworkAdapterConfiguration")

        For Each WmiObj As ManagementObject In Wmi.Get

            If CBool(WmiObj("IPEnabled")) Then
                mac_beg = WmiObj("MACAddress")

                ip_adress = WmiObj("IPAddress")(0)
            End If
        Next


        TextBox4.Text = mac_beg
        TextBox1.Text = ip_adress
        TextBox2.Text = "255.255.255.0"
        TextBox3.Text = "192.168.1.1"

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
 

        Dim IPAddress As String = TextBox1.Text
        Dim SubnetMask As String = TextBox2.Text
        Dim Gateway As String = TextBox3.Text


        Dim objMC As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")

        Dim objMOC As ManagementObjectCollection = objMC.GetInstances()


        For Each objMO As ManagementObject In objMOC

            If (Not CBool(objMO("IPEnabled"))) Then

                Continue For

            End If

            Try

                Dim objNewIP As ManagementBaseObject = Nothing

                Dim objSetIP As ManagementBaseObject = Nothing

                Dim objNewGate As ManagementBaseObject = Nothing


                objNewIP = objMO.GetMethodParameters("EnableStatic")

                objNewGate = objMO.GetMethodParameters("SetGateways")


                'Set DefaultGateway

                objNewGate("DefaultIPGateway") = New String() {Gateway}

                objNewGate("GatewayCostMetric") = New Integer() {1}


                'Set IPAddress and Subnet Mask

                objNewIP("IPAddress") = New String() {IPAddress}

                objNewIP("SubnetMask") = New String() {SubnetMask}

                objSetIP = objMO.InvokeMethod("EnableStatic", objNewIP, Nothing)

                objSetIP = objMO.InvokeMethod("SetGateways", objNewGate, Nothing)



                MessageBox.Show("Updated IPAddress, SubnetMask and Default Gateway!")



            Catch ex As Exception

                MessageBox.Show("Unable to Set IP : " & ex.Message)
            End Try

        Next objMO
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Me.Close()
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Dim last_mac As Integer

        Gopos_database.Open()
        Dim mycomm As SqlCommand
        mycomm = New SqlCommand("Select * From Tbl_Machine order By Machine_ID asc", Gopos_database)
        Dim myreader As SqlDataReader = Nothing
        myreader = mycomm.ExecuteReader()
        While myreader.Read

            last_mac = myreader("Machine_ID")

        End While
        Gopos_database.Close()

        last_mac = last_mac + 1

   


        Gopos_database.Open()
        Dim mycomm2 As SqlCommand
        mycomm2 = New SqlCommand("Insert Into Tbl_Machine (Machine_ID, Mac_Address,Drawer_ID) values ( '" & last_mac & "', '" & mac_beg & "', '" & ComboBox1.Text & "')", Gopos_database)
        mycomm2.ExecuteNonQuery()
        Gopos_database.Close()


    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click

        Dim reg As RegistryKey
        reg = Registry.CurrentUser.OpenSubKey("Control Panel\International", True)


        reg.SetValue("sShortDate", "dd/MM/yyyy")
        reg.SetValue("sLongDate", "dd/MM/yyyy")
       

    End Sub

    Private Sub GroupBox2_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox2.Enter

    End Sub

    Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
        Dim conn As New SqlConnection("Server=(SQLEXPRESS);Data Source=;Integrated Security=SSPI")
        Dim cmd As New SqlCommand("", conn)

        cmd.CommandText = "CREATE DATABASE 'Gopos' ON " & _
        "PRIMARY ( FILENAME =  'Gopos.mdf' ) " & _
        "FOR ATTACH"

        conn.Open()
        cmd.ExecuteNonQuery()

        cmd.Dispose()
        conn.Dispose()
    End Sub
End Class
 

0

شارك هذا الرد


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

شكرا على مجهودك

0

شارك هذا الرد


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

مشكوررررررررررررررررررررررررررر

0

شارك هذا الرد


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

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

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



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

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

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