الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

سؤال: كيف اعيد بناء نموذج تم بناءه

مغلق
بدأه Romantic_touch في 8 نوفمبر 2005 · 5 رد · 530 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

قمت بانشاء برنامج بلغتين ووضعت خاصية ان المستخدم يمكن له ان يغير اللغة اثناء البرنامج

وقمت بعمل الفورم بشكل جيد

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

لتوضيح كيفية عمل اللغتين في البرنامج

اولا قمت بفتح نموذج ووضع كل محتوياته

ثم قمت بتغير خاصية language الى اللغة الاخرى ثم قمت باعادة تسمية محتويات النموذج.

تم تعديل هذه المشاركة بواسطة Romantic_touch في 8 نوفمبر 2005 في 19:54

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#2

لنفترض بانه قمت بعمل نموذج به اللغة العربية واللغة الانجليزية

وهذا النموذج به ثلاث ادوات label هى اللى راح تتغير اعدادات فيها

ونحط فى الفورم اثنين radio button واحد للغة العربية والثانى يغير للانجليزية

ونفترض مبدئيا ان اللغة العربية هى الافتراضية

اكتب هذا الكود فى حدث تغيير الراديو للغة الانجليزيه

private SUB   rdEng_CheckedChanged( sender As Object,  e As System.EventArgs )

 Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US")

    ReloadControlText()
End Sub

طبعا الاجراء ReloadControlText() نحن نقوم بعمله لتحديث الادوات

(privet Sub ReloadControlText( 
Dim resources  As System.Resources.ResourceManager =new System.Resources.ResourceManager(GetType(form1))

label1.Text = resources.GetString( "label1.Text" )

    label2.Text =  resources.GetString("label2.Text" )

    label3.Text = resources.GetString( "label3.Text" )
End Sub

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

اخي الكريم الف شكر للحل

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

main menu

menuitem

toolbar

فهل يمكن ان اجعل البرنامج تلقائيا يقوم باعادة تحميل ملف resx مرة اخرى او هل هناك اي طريقة اخر لفعل ذلك دون الحاجة الى تحديد كل كنترول على حده؟

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

#4

اعتقد انه هذا هو الحل الوحيد

والله اعلم

وتذكر ان الطريقة GetString التابعة للفئة حساسة لحالة الاحرف ف label1 تختلف عن Label1 لاحظ الحرف الاول

مثال مرفق

ChangingTheCurrentCultureDemo.zip

تم تعديل هذه المشاركة بواسطة SOLO.NET في 9 نوفمبر 2005 في 18:37

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#5

hi

there is another souluation fot thats problem

u can try this

Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US")

dim form as new form1

form.show()

thats will open the form by the selecting languge

#6

الأخ qalaloh

الحل سليم 100% يوفي بالغرض

ولكن له عيب واحد وهو انه اذا كان لديك اي نموذج مفتوح داخل النموذج الأب سوف يغلق :)

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

<span style='color:green'>سؤل ابن عباس عن علمه كيف جمعه فقال :( أوتيت لسانا سؤولا وقلبا عقولا)</span>

هذا الموضوع مغلق.

مواضيع مشابهة