هل تريد معرفه كيف يتم تغيير لغة الادخال في ويندوز
Application.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("ar-ye"));
تحويل للعربية
————————————————
Application.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("en-us"));
تحويل للغة الانجليزية
للتأكد قم بالتجربة في اثنين button وضع كل كود في دالة الحدث
Application.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("ar-ye"));
تحويل للعربية
————————————————
Application.CurrentInputLanguage = InputLanguage.FromCulture(new System.Globalization.CultureInfo("en-us"));
تحويل للغة الانجليزية
للتأكد قم بالتجربة في اثنين button وضع كل كود في دالة الحدث
بسم الله الرحمن الرحيم
اليوم سوف نشرح عن كيفية حذف حدث محدد لأي أداة تحكم
تابع معي الشرح .....
لنفرض ان لديك في الفورم 2 ازرار button1 و button2
الزر الأول يقوم بحذف الحدث Click للزر 2
الزر الثاني يحتوي على رسالة ترحيبية كما في الاكواد التالية
private void button1_Click(object sender, EventArgs e)
{
button2.Click -= new EventHandler(button2_Click);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
الان اذا قمت بالتنفيذ وتقوم بالضغط على الزر 2 فسوف يعمل الحدث وتظهر الرساله
الان اضغط على الزر 1 وقم بالضغط على الزر 2
ستلاحظ ان الحدث لم يعمل و الرسالة لم تظهر والسبب انك قمت بحذف الحدث من خلال النقر على الزر الأول
button2.Click -= new EventHandler(button2_Click);
لاحظ ان تعليمة حذف الحدث بنفس تعليمة ربط الحدث مع أداة التحكم الاختلاف فقط في الإشارة + او –
اذا اردت ان تقوم بتفعيل الحدث مرة أخرى قم بإضافة زر ثالث
private void button3_Click(object sender, EventArgs e)
{
button2.Click += new EventHandler(button2_Click);
}
انتهى ...........
اليوم سوف نشرح عن كيفية حذف حدث محدد لأي أداة تحكم
تابع معي الشرح .....
لنفرض ان لديك في الفورم 2 ازرار button1 و button2
الزر الأول يقوم بحذف الحدث Click للزر 2
الزر الثاني يحتوي على رسالة ترحيبية كما في الاكواد التالية
private void button1_Click(object sender, EventArgs e)
{
button2.Click -= new EventHandler(button2_Click);
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
الان اذا قمت بالتنفيذ وتقوم بالضغط على الزر 2 فسوف يعمل الحدث وتظهر الرساله
الان اضغط على الزر 1 وقم بالضغط على الزر 2
ستلاحظ ان الحدث لم يعمل و الرسالة لم تظهر والسبب انك قمت بحذف الحدث من خلال النقر على الزر الأول
button2.Click -= new EventHandler(button2_Click);
لاحظ ان تعليمة حذف الحدث بنفس تعليمة ربط الحدث مع أداة التحكم الاختلاف فقط في الإشارة + او –
اذا اردت ان تقوم بتفعيل الحدث مرة أخرى قم بإضافة زر ثالث
private void button3_Click(object sender, EventArgs e)
{
button2.Click += new EventHandler(button2_Click);
}
انتهى ...........
👍1
if (checkBox1.Checked)
MessageBox.Show("A");
else
MessageBox.Show("B");
MessageBox.Show("A");
else
MessageBox.Show("B");
برمجة تطبيقات الويندوز C# Programming
if (checkBox1.Checked) MessageBox.Show("A"); else MessageBox.Show("B");
لاحظ كيف تم اختصار الكود السابق بواسطة علامة الاستفهام وفي MessageBox واحدة
MessageBox.Show(checkBox1.Checked ? "A": "B");
MessageBox.Show(checkBox1.Checked ? "A": "B");
الصيغة العامة
condition ? [value for true] : [value for false]
condition الشرط
condition ? [value for true] : [value for false]
condition الشرط
👍1
الفرق بين علامتي & و &&
وعلامتي | و ||
AND & يختبر كلا الجانبين في كل مرة.
OR | اختبر كلا الجانبين في كل مرة.
AND && يختبر الجانب الثاني فقط إذا كان الجانب الأول صحيحًا.
Or || اختبار الجانب الثاني فقط إذا كان الجانب الأول خطأ.
وعلامتي | و ||
AND & يختبر كلا الجانبين في كل مرة.
OR | اختبر كلا الجانبين في كل مرة.
AND && يختبر الجانب الثاني فقط إذا كان الجانب الأول صحيحًا.
Or || اختبار الجانب الثاني فقط إذا كان الجانب الأول خطأ.
👍2
برمجة تطبيقات الويندوز C# Programming
سؤال للعباقرة
int a,b,c,d; a = (b = c = d = 10); كم قيمة a
int a,b,c,d; a = (b = c = d = 10); كم قيمة a
الاجابة الصحيحة 10
والكود السابق يكافئ الكود التالي
int a,b,c,d;
a = b = c = d = 10;
والكود السابق يكافئ الكود التالي
int a,b,c,d;
a = b = c = d = 10;
بسم الله الرحمن الرحيم
اليوم سوف اخبركم عن سبب حدوث المشكلة التي قد تظهر لك وانت تبرمج
المشكلة التي في الصورة اعلاة تظهر في الفورم بمعنى ان هذا الفورم لايمكنك استخدامه ومواصله العمل مالم تقم بحل المشكلة
أولا أسباب حدوث تلك المشكلة
شرح
نفرض انك قمت بإضافة زر للفورم بعد إضافة الزر فأن الكمبايلر يقوم بإضافة الكود الخاص بالزر وتهيئة جميع الخصائص والاحداث الخاصة به
يتم كل هذا العمل في الجزء الاخر من الForm1 بداخل الدالة InitializeComponent
الان تريد ان تفتح الحدث Click للزر من قائمة الاحداث بعد ان يفتح كود دالة الحدث Click
يقوم الكمبايلر بتهيئة الحدث داخل الدالة InitializeComponent
this.button1.Click += new System.EventHandler(this.button1_Click);
كما في الكود السابق
الان لو تقوم بحذف دالة الحدث Click او تعملها // تعليق بالكامل
الان قم بالعودة للفورم ستلاحظ ان المشكلة التي في الصورة السابقة
قد ظهرت لك والسبب انك حذفت الدالة والدالة مرتبطة بتهيئة الحدث Click
this.button1.Click += new System.EventHandler(this.button1_Click);
سوف يخبرك الكمبايلر ان هناك خطاء وهو اسم الدالة button1_Click غير موجود
مما يسبب في حدوث هذه المشكلة
كيف تقوم بحل المشكلة قم بالدخول الى الدالة InitializeComponent
وحذف الكود التالي او تعليق
this.button1.Click += new System.EventHandler(this.button1_Click);
سوف يعود كل شي كما كان سوف يتم حل المشكلة ويظهر فورم التصميم
في حال ظهرت لك المشكلة قم بعمل الاتي
اقرا الرسالة التي تظهر في الصورة التي بالون الأصفر مثل هذه الرسالة
The designer cannot process unknown name 'button1_Click' at line 47. The code within the method 'InitializeComponent' is generated by the designer and should not be manually modified. Please remove any changes and try opening the designer again.
يخبرك في هذه الرسالة ان الديزاينر لايستطيع معالجة اسم غير معروف في السطر 47
الان تقوم بالذهاب للسطر المحدد قم بحذفه او قم بعمل تعليق له
الان ساخبرك معلومة تفيدك
الفورم يعتبر أداة تحكم وكل اداااااااااة تحكم تعتبر كلاااااااس
لماذا عندما تقوم بانشاء فورم يقوم بعمله كلاس جزئي
جزء يقوم بتهئية خصائص واحداث الأدوات
والجزء الاخر للمبرمج لمعالجة دوال الاحداث على مايريد او الدوال الأخرى
https://www.tgoop.com/CsharpWindowsForm
اليوم سوف اخبركم عن سبب حدوث المشكلة التي قد تظهر لك وانت تبرمج
المشكلة التي في الصورة اعلاة تظهر في الفورم بمعنى ان هذا الفورم لايمكنك استخدامه ومواصله العمل مالم تقم بحل المشكلة
أولا أسباب حدوث تلك المشكلة
شرح
نفرض انك قمت بإضافة زر للفورم بعد إضافة الزر فأن الكمبايلر يقوم بإضافة الكود الخاص بالزر وتهيئة جميع الخصائص والاحداث الخاصة به
يتم كل هذا العمل في الجزء الاخر من الForm1 بداخل الدالة InitializeComponent
الان تريد ان تفتح الحدث Click للزر من قائمة الاحداث بعد ان يفتح كود دالة الحدث Click
يقوم الكمبايلر بتهيئة الحدث داخل الدالة InitializeComponent
this.button1.Click += new System.EventHandler(this.button1_Click);
كما في الكود السابق
الان لو تقوم بحذف دالة الحدث Click او تعملها // تعليق بالكامل
الان قم بالعودة للفورم ستلاحظ ان المشكلة التي في الصورة السابقة
قد ظهرت لك والسبب انك حذفت الدالة والدالة مرتبطة بتهيئة الحدث Click
this.button1.Click += new System.EventHandler(this.button1_Click);
سوف يخبرك الكمبايلر ان هناك خطاء وهو اسم الدالة button1_Click غير موجود
مما يسبب في حدوث هذه المشكلة
كيف تقوم بحل المشكلة قم بالدخول الى الدالة InitializeComponent
وحذف الكود التالي او تعليق
this.button1.Click += new System.EventHandler(this.button1_Click);
سوف يعود كل شي كما كان سوف يتم حل المشكلة ويظهر فورم التصميم
في حال ظهرت لك المشكلة قم بعمل الاتي
اقرا الرسالة التي تظهر في الصورة التي بالون الأصفر مثل هذه الرسالة
The designer cannot process unknown name 'button1_Click' at line 47. The code within the method 'InitializeComponent' is generated by the designer and should not be manually modified. Please remove any changes and try opening the designer again.
يخبرك في هذه الرسالة ان الديزاينر لايستطيع معالجة اسم غير معروف في السطر 47
الان تقوم بالذهاب للسطر المحدد قم بحذفه او قم بعمل تعليق له
الان ساخبرك معلومة تفيدك
الفورم يعتبر أداة تحكم وكل اداااااااااة تحكم تعتبر كلاااااااس
لماذا عندما تقوم بانشاء فورم يقوم بعمله كلاس جزئي
جزء يقوم بتهئية خصائص واحداث الأدوات
والجزء الاخر للمبرمج لمعالجة دوال الاحداث على مايريد او الدوال الأخرى
https://www.tgoop.com/CsharpWindowsForm
Telegram
برمجة تطبيقات الويندوز C# Programming
قناة تهتم بالمواضيع التالية :
برمجة قواعد البيانات
برمجة الشبكات
أمن المعلومات
بأستخدام لغة سي شارب
البوت الخاص بالقناة .
https://www.tgoop.com/CsharpWindowsFormbot
برمجة قواعد البيانات
برمجة الشبكات
أمن المعلومات
بأستخدام لغة سي شارب
البوت الخاص بالقناة .
https://www.tgoop.com/CsharpWindowsFormbot
الدالة performClick()
وظيفتها توليد حدث Click لزر
مثال
int i = 0;
private void button1_Click(object sender, EventArgs e)
{
if (i % 2 == 0)
{
button2.PerformClick();
}
else
{
MessageBox.Show("button2 was NOT clicked");
}
i = i + 1;
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
عند الضغط على الزر الأول سيتم تنفيذ دالة الزر الثاني وعند الضغط مرة أخرى سيتم تنفيذ دالة الزر الأول
وهكذا اذا كانت i عدد زوجي سوف يتم تنفيذ الزر الثاني واذا كانت عدد فردي سيتم تنفيذ الزر الأول
يعني ان الدالة perfromClick تعمل وكأن المستخدم هو الذي ذهب بمؤشر الماوس الى الزر الثاني وضغط عليه
مثال اسهل لكي توضح الفكرة اكثر
private void button1_Click(object sender, EventArgs e)
{
button2.PerformClick();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
https://www.tgoop.com/CsharpWindowsForm
وظيفتها توليد حدث Click لزر
مثال
int i = 0;
private void button1_Click(object sender, EventArgs e)
{
if (i % 2 == 0)
{
button2.PerformClick();
}
else
{
MessageBox.Show("button2 was NOT clicked");
}
i = i + 1;
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
عند الضغط على الزر الأول سيتم تنفيذ دالة الزر الثاني وعند الضغط مرة أخرى سيتم تنفيذ دالة الزر الأول
وهكذا اذا كانت i عدد زوجي سوف يتم تنفيذ الزر الثاني واذا كانت عدد فردي سيتم تنفيذ الزر الأول
يعني ان الدالة perfromClick تعمل وكأن المستخدم هو الذي ذهب بمؤشر الماوس الى الزر الثاني وضغط عليه
مثال اسهل لكي توضح الفكرة اكثر
private void button1_Click(object sender, EventArgs e)
{
button2.PerformClick();
}
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
https://www.tgoop.com/CsharpWindowsForm
Telegram
برمجة تطبيقات الويندوز C# Programming
قناة تهتم بالمواضيع التالية :
برمجة قواعد البيانات
برمجة الشبكات
أمن المعلومات
بأستخدام لغة سي شارب
البوت الخاص بالقناة .
https://www.tgoop.com/CsharpWindowsFormbot
برمجة قواعد البيانات
برمجة الشبكات
أمن المعلومات
بأستخدام لغة سي شارب
البوت الخاص بالقناة .
https://www.tgoop.com/CsharpWindowsFormbot
بسم الله الرحمن الرحيم
اليوم سوف نشرح طريقة أخرى لكيفية تحريك الفورم في حال كانت خاصية FormBorderStyle=none
الطريقة الاولى التي شرحناها في موضوع Custom Control Box الأداة التي كانت تقوم بتحريك الفورم هي panel وكنا نقوم بكتابة الاكواد المطلوبة في كل دالة حدث
MouseDown,MouseUp,MouseMove
الان شاهد الكود التالي والذي قمنا بكتابته داخل دالة البناء للفورم
int x, y;
public Form1()
{
InitializeComponent();
this.Load += delegate (object Sender, EventArgs E)
{
Button1.MouseDown += delegate (object Send, MouseEventArgs M)
{
this.AllowDrop = true;
y = Cursor.Position.Y - this.DesktopLocation.Y;
x = Cursor.Position.X - this.DesktopLocation.X;
};
};
Button1.MouseUp += delegate (object Send, MouseEventArgs E)
{
AllowDrop = false;
};
Button1.MouseMove += delegate (object Sender, MouseEventArgs E)
{
if (AllowDrop)
{
this.DesktopLocation = new Point(Cursor.Position.X - x, Cursor.Position.Y - y);
}
};
}
الان عندما تضغط على الزر button1 وتقوم بتحريك سوف يتم سحب الفورم من مكان الى اخر
شاهد هذا الكود ايضاً
int x, y;
public Form1()
{
InitializeComponent();
this.Load += delegate (object Sender, EventArgs E)
{
this.MouseDown += delegate (object Send, MouseEventArgs M)
{
this.AllowDrop = true;
y = Cursor.Position.Y - this.DesktopLocation.Y;
x = Cursor.Position.X - this.DesktopLocation.X;
};
};
this.MouseUp += delegate (object Send, MouseEventArgs E)
{
AllowDrop = false;
};
this.MouseMove += delegate (object Sender, MouseEventArgs E)
{
if (AllowDrop)
{
this.DesktopLocation = new Point(Cursor.Position.X - x, Cursor.Position.Y - y);
}
};
}
الان الفورم هو الذي سوف يقوم بتحريك نفسه
عندما تحدث الاحداث التالية MouseDown و MouseMove
الكودين السابقين يعملين سوا كانت الخاصية FormBordeStyle
تساوي أي قيمة
انتهى ...........
اليوم سوف نشرح طريقة أخرى لكيفية تحريك الفورم في حال كانت خاصية FormBorderStyle=none
الطريقة الاولى التي شرحناها في موضوع Custom Control Box الأداة التي كانت تقوم بتحريك الفورم هي panel وكنا نقوم بكتابة الاكواد المطلوبة في كل دالة حدث
MouseDown,MouseUp,MouseMove
الان شاهد الكود التالي والذي قمنا بكتابته داخل دالة البناء للفورم
int x, y;
public Form1()
{
InitializeComponent();
this.Load += delegate (object Sender, EventArgs E)
{
Button1.MouseDown += delegate (object Send, MouseEventArgs M)
{
this.AllowDrop = true;
y = Cursor.Position.Y - this.DesktopLocation.Y;
x = Cursor.Position.X - this.DesktopLocation.X;
};
};
Button1.MouseUp += delegate (object Send, MouseEventArgs E)
{
AllowDrop = false;
};
Button1.MouseMove += delegate (object Sender, MouseEventArgs E)
{
if (AllowDrop)
{
this.DesktopLocation = new Point(Cursor.Position.X - x, Cursor.Position.Y - y);
}
};
}
الان عندما تضغط على الزر button1 وتقوم بتحريك سوف يتم سحب الفورم من مكان الى اخر
شاهد هذا الكود ايضاً
int x, y;
public Form1()
{
InitializeComponent();
this.Load += delegate (object Sender, EventArgs E)
{
this.MouseDown += delegate (object Send, MouseEventArgs M)
{
this.AllowDrop = true;
y = Cursor.Position.Y - this.DesktopLocation.Y;
x = Cursor.Position.X - this.DesktopLocation.X;
};
};
this.MouseUp += delegate (object Send, MouseEventArgs E)
{
AllowDrop = false;
};
this.MouseMove += delegate (object Sender, MouseEventArgs E)
{
if (AllowDrop)
{
this.DesktopLocation = new Point(Cursor.Position.X - x, Cursor.Position.Y - y);
}
};
}
الان الفورم هو الذي سوف يقوم بتحريك نفسه
عندما تحدث الاحداث التالية MouseDown و MouseMove
الكودين السابقين يعملين سوا كانت الخاصية FormBordeStyle
تساوي أي قيمة
انتهى ...........
شاهد الصورة السابقة
ماذا تعتقد ماهي اداة التحكم التي في الفورم
ماذا تعتقد ماهي اداة التحكم التي في الفورم
Anonymous Poll
30%
TextBox
46%
Lable
24%
Button
برمجة تطبيقات الويندوز C# Programming
شاهد الصورة السابقة
ماذا تعتقد ماهي اداة التحكم التي في الفورم
ماذا تعتقد ماهي اداة التحكم التي في الفورم
طبعاً الاداة هي TextBox
قم بتغيير الخصائص الخاصة بها الى التالي
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
TextBox1.Multiline = True; // If needed
قم بتغيير الخصائص الخاصة بها الى التالي
TextBox1.ReadOnly = true;
TextBox1.BorderStyle = 0;
TextBox1.BackColor = this.BackColor;
TextBox1.TabStop = false;
TextBox1.Multiline = True; // If needed