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

وأخير حل مشكلة المرآه في أدوات .NET

مغلق
بدأه ابوأنس في 19 يوليو 2005 · 15 رد · 1,366 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

الحل موجود في الملف المرفق

كل ما عليك هو استخدام أحد الClasses الموجودة داخل MirroredControls Namespace وهي كلتالي:

MirroredForm

MirroredListBox

MirroredListView

MirroredStatusBar

MirroredTabControl

MirroredToolBar

MirroredTreeView

وعندما تريد الأداة ان تكون من اليمين الى اليسار كل ما عليك هو تغيير الخاصية

Mirrored=true;

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

MirroredControls_sc.zip

تم تعديل هذه المشاركة بواسطة W3Developer في 19 يوليو 2005 في 20:29

#2

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

جزاك الله خير

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

تم تعديل هذه المشاركة بواسطة seahmad في 20 يوليو 2005 في 11:20

فلسطين الزاهية بألوان الحب والسلام

ذلك الطعم الزيتوني الذي يتدفق عسلاً من أفواه بساتينها وحدائقها

تشتاق إليها نفوس المتقين وترنوا للسجود فيها جباه المسلمين

#3

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

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

أما بالنسبة

اقتباس
فلو تكرم احد * بشرح عملية الازاحة -على ما أظن - التي حلت المشكلة فله جزيل الشكر

الموضوع رياضي بحت

1- أنت لديك عرض الفورم

this.Size.Width;

2- لديك موضع الكنترول

myControl.Location.X;

3- لديك عرض الكنترول

myControl.Size.Width;

أصبحت لديك المعادلة لتغير مكان الكنترول وجعل كل الفورم الإزاحة عربي أو إنجليزي وذلك ما فعلتة ميكروسوفت في Visual Studio.Net 2005

عرض الفورم - ( موضع الكنترول + عرض الكنترول )

سوف ينتقل الكنترول بالفور للجهة الأخرى إذا كان على اليمين أصبح على اليسار وإن كان على اليسار أصبح على اليمين

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#4

لماذا لم ترفق الكونترول أخ Ahmed H. Alawady

تم تعديل هذه المشاركة بواسطة ندى الصباح في 21 يوليو 2005 في 20:31

#5

السلام على من اتبع الهدى ورحمة الله وبركاته

الأخت ندى إنه ليس كنترول ولكن طريقة وأسلوب فقط

سوف أقوم بشرحها بإذن الله

1- يجب عمل مشروع مخصص وإنشاء به ملف فورم ليتم إخراج DLL

2- في هذا الفورم في الكود نقوم بعمل الآتي

public enum ArabicToEnglish {Yes, No};

  private ArabicToEnglish aTe = ArabicToEnglish.No;
  public ArabicToEnglish ATE
  {
 	 get{ return aTe; }
 	 set
 	 {
    if( aTe != value )
    {
   	 aTe = value;
   	 foreach( System.Windows.Forms.Control _control in this.Controls)
   	 {
      CheckRightToLeft(_control);
   	 }
    }
 	 }
  }

وفي هذا الكود السابق يتم إستدعاء الدالة والتي إسمها CheckRightToLeft

private void CheckRightToLeft(System.Windows.Forms.Control SelectedControl)
  {
 	 switch(aTe)
 	 {
    case ArabicToEnglish.Yes:
   	 SelectedControl.Left = this.Width - (SelectedControl.Width + SelectedControl.Left);
   	 
   	 SelectedControl.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
   	 this.RightToLeft = System.Windows.Forms.RightToLeft.Yes;
   	 break;
    case ArabicToEnglish.No:
   	 SelectedControl.Left = this.Width - SelectedControl.Left - SelectedControl.Width;
   	 SelectedControl.RightToLeft = System.Windows.Forms.RightToLeft.No;
   	 this.RightToLeft = System.Windows.Forms.RightToLeft.No;
   	 break;
 	 }

  }

والتي تتم بطريقة أن الكود الأول يتم تقسيم جميع الكنترول الموجودة في الفورم وإرسالها إلى الدالة السابقة في الكود الثاني

ليقوم بمعرفة أبعاد الكنترول وموضعها للفورم ثم يقوم ببعض الحسابات بتغير وضع الكنترول ثم يقوم بالمثل لكل كنترول في الفورم

Arabic_English.rar

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#6

السلام عليكم

ياريت حد يقولي ايش المقصود بخاصية المراه؟؟

وهل RightToLeft يمكن يحل المشكله؟؟

abo_alzobaer@hotmail.com

#7

خاصية المرآة هي خاصية تحويل الاتجاه للكونترول من اليمين الى اليسار ومن اليسار الى اليمين (وغالبا تستخدم في البرامج التي تستخدم أكثر من لغة واحدة للواجهات (عربي/انجليزي) مثلا

و RightToLeft تحل المشكلة ولكن لبعض الكنترولز البسيطة أما الكنترولز التالية:

Form

ListBox

ListView

StatusBar

TabControl

ToolBar

TreeView

فلا تستجيب بشكل كامل لخاصية RightToLeft فيلزم استخدام الطريقة المذكورة في هذا الموضوع

#8

شكرا للأخوين W3Developer وAhmed H. Alawady جعل الله أعمالكم في ميزان حسناتكم

#9

اشكرك جدا اخ W3Developer

abo_alzobaer@hotmail.com

#10

السلام على من اتبع الهدى ورحمة الله وبركاته

W3Developer كتب:
خاصية المرآة هي خاصية تحويل الاتجاه للكونترول من اليمين الى اليسار ومن اليسار الى اليمين (وغالبا تستخدم في البرامج التي تستخدم أكثر من لغة واحدة للواجهات (عربي/انجليزي) مثلا

و RightToLeft تحل المشكلة ولكن لبعض الكنترولز البسيطة أما الكنترولز التالية:

Form

ListBox

ListView

StatusBar

TabControl

ToolBar

TreeView

فلا تستجيب بشكل كامل لخاصية RightToLeft  فيلزم استخدام الطريقة المذكورة في هذا الموضوع

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

ولكن كنت نوهت بموضوع تغير موضع الكنترول لكي لا يقوم أي مبرمج بعمل شاشتين أحدهما في إتجاه اليمين للعربي والأخرى بمحازاة اليسار لأي لغة أخرى

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

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#11

وصلت اخي العزيز

لكني قمت بتجربة المثال واتضح لي انه component وليس Form

فكيف اقوم بتنفي>ه على الفورم؟؟؟

شكرا

abo_alzobaer@hotmail.com

#12

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

أخي الكريم mgazif عند إنشاء مشروع جديد يوجد لديك في الشاشة الخاصة Solution Explorer في الشجرة التي بداخلها فرع يسمى Reference فيمكنك الضغط عليه بالزر الأيمن للماوس ستجد Add Reference

ستظهر لك شاشة قم بإختيار Browse حتى تجد الملف الخاص بالمشروع السابق DLL

وبعد إضافته للمشروع يمكنك إضافة Form جديد

1- ولكن يوجد لديك من ضمن الأختيارات Add Inhirited Form ، ثم تقوم بإختيار الملف من الشاشة التي سوف تظهر

أو 2- تقوم بإضافة Form جديد عادي وتقوم بتغير System.Windows.Forms.Form والموجودة بالكود ويتم توريثها للفورم الخاص بك إلى test.Form1 على ما أعتقد المهم هو NameSpaceName.ClassName

وبعد ذلك سوف تجد في شاشة الخصائص للفورم الجديد متغير بإسم ATE وهو إختصار Arabic To English

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

وبإذن الله سوف أرفق صور لطريقة عمل هذا عندما أنتقلى الويندوز الآخر الخاص بالدوت نت

وأنا تحت أمرك في أي طلب أو استفسار

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#14

لمشاركة

Nothing to mention except that I am Muslim

Using your brain is not bad as you think

My Blog

logo.jpg

#15

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

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

25_07_05_04_41_01_1122291661Step_1.GIF

25_07_05_04_42_17_1122291737Step_.GIF

25_07_05_04_43_42_1122291822Step_3.GIF

25_07_05_04_44_38_1122291878Step_4.GIF

25_07_05_04_45_38_1122291938Step_5.GIF

25_07_05_04_46_06_1122291966Step_6.GIF

25_07_05_04_46_42_1122292002Step_7.GIF

25_07_05_04_48_00_1122292080Step_8.GIF

25_07_05_04_49_17_1122292157Step_9.GIF

وبس

وأرجوا أن أكون قد أفدت ، ولقد قمت بضغط الصور ووضعها في المرفقات لمن يريد تنزيلها

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

My Pictures1.rar

My Pictures2.rar

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

#16

هذا هو المرفق الثالث

My Pictures3.rar

Name : Ahmed H. Alawady

Web Site : Alawady.info

Email : alawady_ahmed@hotmail.com

Tel : +2 012 345 6808

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

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…