تحويل وظيفة من c# الي vb.net

تم تحميل الصفحة في 1,8061131 ثانية
تحويل وظيفة من c# الي vb.net
إنضم
1 أبريل 2013
المشاركات
1,050
الإعجابات
581
النقاط
113
السلام عليكم ورحمة الله وبركاتة

عندي كود بالسي شارب اريد تحويلة للvb.net

كود:
    public EventHandler ReceiveMsg ;
        DateTime LastReceive;
  
   InitializeComponent();
            ReceiveMsg += ReceiveMsg_Handler;
            LastReceive = DateTime.Now;
            IPHostEntry ipHostInfo = Dns.GetHostEntry(Dns.GetHostName());

            IPAddress ipAddress = ipHostInfo.AddressList.Where(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)
              .FirstOrDefault();
            lblip.Text = ipAddress.ToString();
            
             private void ReceiveMsg_Handler(object sender, EventArgs e)
        {
          
            LastReceive = DateTime.Now;
            Timer1_Tick(null, null);
            if (sender.ToString().Contains("ping"))
                return;
            var Barcode = sender.ToString().Split('-');
            txtbarcode.Invoke((MethodInvoker)delegate {
                // Running on the UI thread
                txtbarcode.Text = Barcode[0];
                txtname.Text = Barcode[1].Substring(0, Barcode[1].IndexOf("<EOF>"));
            });
            SendKeys.SendWait(Barcode[0]);
        }
        Thread Serverthread;
        
         private void Timer1_Tick(object sender, EventArgs e)
        {
            bool res = DateTime.Now - LastReceive >= TimeSpan.FromSeconds(2);
            lblStatus.Invoke((MethodInvoker)delegate
            {
                lblStatus.Text = res ? "Disconnected": "Connected";
                lblStatus.ForeColor = res ? Color.Red : Color.Green;
            });
                return;

        }
=======================================================
حولت الكود الي vb.net طلعي بالشكل دة مع الاخطاء دية
1- ReceiveMsg' is not an event of 'eserver1.Form1'.
2- الخطاء الثاني ان كلا الوظيفتين لا تعود الي قيم
Function '<anonymous method>' doesn't return a value on all code paths

=======================================================
كود:
  Public ReceiveMsg As EventHandler
    Private LastReceive As DateTime

    Public Sub New()
        InitializeComponent()
        AddHandler ReceiveMsg, AddressOf ReceiveMsg_Handler  ' الخطا الاول'
        LastReceive = DateTime.Now
        Dim ipHostInfo As IPHostEntry = Dns.GetHostEntry(Dns.GetHostName())
        Dim ipAddress As IPAddress = ipHostInfo.AddressList.Where(Function(x) x.AddressFamily = System.Net.Sockets.AddressFamily.InterNetwork).FirstOrDefault()
        lblip.Text = ipAddress.ToString()
    End Sub
    Public Sub ReceiveMsg_Handler(ByVal sender As Object, ByVal e As EventArgs)
        LastReceive = DateTime.Now
        Timer1_Tick(Nothing, Nothing)
        If sender.ToString().Contains("ping") Then Return
        Dim Barcode = sender.ToString().Split("-"c)
        txtbarcode.Invoke(CType(Function()
                                    txtbarcode.Text = Barcode(0)
                                    txtname.Text = Barcode(1).Substring(0, Barcode(1).IndexOf("<EOF>"))
                                End Function, MethodInvoker))
        SendKeys.SendWait(Barcode(0))
    End Sub

  
    Private Sub Timer1_Tick(ByVal sender As Object, ByVal e As EventArgs) Handles Timer1.Tick
        Dim res As Boolean = DateTime.Now - LastReceive >= TimeSpan.FromSeconds(2)
        lblStatus.Invoke(CType(Function()
                                   lblStatus.Text = If(res, "Disconnected", "Connected")
                                   lblStatus.ForeColor = If(res, Color.Red, Color.Green)
                               End Function, MethodInvoker))
        Return
    End Sub
 
إنضم
1 أبريل 2013
المشاركات
1,050
الإعجابات
581
النقاط
113
في جزء بسيط بالنسبة لل ReceiveMsg
باستخدمها مرة اخري في حدث التشغيل

كود:
 Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        AsynchronousSocketListener.ReceiveMsg = ReceiveMsg
        Serverthread = New Thread(New ThreadStart(Sub()
                                                      AsynchronousSocketListener.StartListening()
                                                  End Sub))
        Serverthread.Start()
    End Sub
 

د. ابراهيموفيتش

موقوف لمخالفة الشروط
rank
إنضم
19 أغسطس 2019
المشاركات
23
الإعجابات
27
النقاط
18
أخي الخطأ واضح وضوح الشمس

Public ReceiveMsg As EventHandler

يجب تمرير نوع المتغير الذي تريده

هل تريد string ام int ......الخ

فيصبح هكذا

Public Event ReceiveMsg As EventHandler

أنصحك بترك هذا الكود برمته والبدأ في اساسيات الفيجوال بيسك. تأسس بشكل صحيح لكي تواجه المشاكل المستقبلية.
 
إنضم
1 أبريل 2013
المشاركات
1,050
الإعجابات
581
النقاط
113
أخي الخطأ واضح وضوح الشمس

Public ReceiveMsg As EventHandler

يجب تمرير نوع المتغير الذي تريده

هل تريد string ام int ......الخ

فيصبح هكذا

Public Event ReceiveMsg As EventHandler

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


حضرتك مختش بالك من تعليقي لان بيظهر بعد كدة خطا اخر

'Public Event ReceiveMsg(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.

في جزء بسيط بالنسبة لل ReceiveMsg
باستخدمها مرة اخري في حدث التشغيل


كود:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
خطا اخر' AsynchronousSocketListener.ReceiveMsg = ReceiveMsg
Serverthread = New Thread(New ThreadStart(Sub()
AsynchronousSocketListener.StartListening()
End Sub))
Serverthread.Start()


End Sub
 

د. ابراهيموفيتش

موقوف لمخالفة الشروط
rank
إنضم
19 أغسطس 2019
المشاركات
23
الإعجابات
27
النقاط
18
حضرتك مختش بالك من تعليقي لان بيظهر بعد كدة خطا اخر

'Public Event ReceiveMsg(sender As Object, e As System.EventArgs)' is an event, and cannot be called directly. Use a 'RaiseEvent' statement to raise an event.

في جزء بسيط بالنسبة لل ReceiveMsg
باستخدمها مرة اخري في حدث التشغيل


كود:

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
خطا اخر' AsynchronousSocketListener.ReceiveMsg = ReceiveMsg
Serverthread = New Thread(New ThreadStart(Sub()
AsynchronousSocketListener.StartListening()
End Sub))
Serverthread.Start()


End Sub

يا اخي الكريم اقرأ ردي لو سمحت

كنت أقصد أنك لم تواجه خطأ بل تواجه قصور بلغة الفيجوال بيسك

يعني حضرتك لاحظ معي الخطأ

يقول لك

Event ReceiveMsg is an event, and cannot be called directly
Use a 'RaiseEvent' statement to raise an event

بالعربي

ReceiveMsg عبارة عن حدث ، و لايمكن استدعاءة بشكل مباشر
استخدم RaiseEvent لكي تستدعي الحدث
RaiseEvent ReceiveMsg

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

فما بالك لو أتتك مشكلة حقيقة؟ أنصحك بالبحث في اليوتيوب عن دورات VB .NET

أما نسخ ولصق برنامج وسوكت فـ والله لن يفيدك

هذا آخر رد لي هنا.

كل الاحترام لك.

تحياتي.
 

الأعضاء النشطين حاليآ الذين يشاهدون هذا الموضوع (1 عضو و 0 ضيف)

خيارات الاستايل

نوع الخط
مودك
اخفاء السايدر بار OFF
توسيط المنتدى OFF
فصل الأقسام OFF
الأقسام الفرعية OFF
عرض المشاركات
حجم الخط
معلومات العضو OFF
إخفاء التوقيع OFF

إرجاع خيارات الإستايل