تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكلة في برنامج متعدد اللغات
#1
السلام عليكم ورحمة الله وبركاته 

اعضاء المنتدى المحترمين 


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

مشكلتي كالتالي انا عامل برنامج بلغتين العربية والانجليزية بواسطة localizable قمت باختيار اللغة العربية ثم الانجليزية والوضع ماشي زي الحلاوة 

لكن عندي احدى الشاشات يوجد داخلها زر بحث يفتح الى نافذة اخرى خاصة بالبحث 

المهم اللغة شغالة لكن يوجد كود تعبئة الفورم الاول من شاشة البحث 

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

اولا : كود استدعاء شاشة دليل الحسابات هو 

كود :
             'هذا السطر عبارة عن اجراء موجود في موديول 
        System_Language(Chart_Of_Account) 'this code is general methode
        Dim New_Chart_Of_Account As New Chart_Of_Account
        New_Chart_Of_Account.ShowDialog()





ثانيا : الموديول الخاص باللغة وتغييرها


كود :
   Public Sub System_Language(ByVal Controls_Location As Object)
       If My.Settings.App_language = "AR" Then
           CurrentThread.CurrentUICulture = New CultureInfo("AR")
       Else
           If My.Settings.App_language = "EN" Then
               CurrentThread.CurrentUICulture = New CultureInfo("EN")
           End If
       End If
   End Sub




ثالثا : كود استدعاء الاجراء من شاشة البحث 

كود :
Chart_Of_Account.show_record_data(DataGridViewX1.CurrentRow.Cells(0).Value)



رابعا : كود اجراء التعبئة الموجود في شاشة دليل الحسابات

كود :
Public Sub show_record_data(ByVal x)
       Dim adp = New SqlClient.SqlDataAdapter("select * from Company_Tree where Account_Code=N'" & x & "'", sqlconn)
       Dim ds = New DataSet
       adp.Fill(ds)
       Dim dt = ds.Tables(0)

       If dt.Rows.Count > 0 Then

           Dim dr = dt.Rows(0)

           Account_Status.Checked = dr!Account_Status
           Account_Type.Checked = dr!Account_Type
           Account_Status.Checked = dr!Account_Status

           If dr!Account_Nature = True Then
               Debit.Checked = True
               Credit.Checked = False
           Else
               Debit.Checked = False
               Credit.Checked = True
           End If

           For Each Ctrl In Grp1.Controls
               If TypeOf Ctrl Is TextBox And dt.Columns.Contains(Ctrl.Name) Then
                   Ctrl.Text = dr.Item(Ctrl.Name)
               End If
           Next

           For Each Ctrl In Grp2.Controls
               If TypeOf Ctrl Is TextBox And dt.Columns.Contains(Ctrl.Name) Then
                   Ctrl.Text = dr.Item(Ctrl.Name)
               End If
           Next

           For Each Ctrl In Grp3.Controls
               If TypeOf Ctrl Is TextBox And dt.Columns.Contains(Ctrl.Name) Then
                   Ctrl.Text = dr.Item(Ctrl.Name)
               End If
               If TypeOf Ctrl Is ComboBox And dt.Columns.Contains(Ctrl.Name) Then
                   Ctrl.Text = dr.Item(Ctrl.Name)
               End If
           Next

           For Each Ctrl In Grp4.Controls
               If TypeOf Ctrl Is TextBox And dt.Columns.Contains(Ctrl.Name) Then
                   Ctrl.Text = dr.Item(Ctrl.Name)
               End If
           Next

           Date_Create_Account.Value = dr!Date_Create_Account
           Change.Text = 0
       End If
   End Sub


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


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


للتوضيح سوف اضع صورة للشاشات المذكورة 








الرجاء الحل منكم اخواني وجزاكم الله كل خير
الرد }}}
تم الشكر بواسطة: مصمم


الردود في هذا الموضوع
مشكلة في برنامج متعدد اللغات - بواسطة ay.alhaj - 10-11-18, 01:31 AM


التنقل السريع :


يقوم بقرائة الموضوع: