Telegram Web
تستطيع نسخ النص من lable بطريقة التالي

في دالة الحدث Click لل lable

Clipboard.SetDataObject(label1.Text, true);
بسم الله الرحمن الرحيم

اليوم سوف نشرح كيفية حذف وتدمير أدوات التحكم في وقت التشغيل (أي عندما يكون البرنامج الخاص بك شغال )

الدالة التي تقوم بهذه العملية هي Dispose

تستطيع حذف أداة تحكم بعده طرق
الأولى
private void button1_Click(object sender, EventArgs e)
{


button2.Dispose();

}

الزر الأول يقوم بحذف الزر الثاني

الطريقة الثانية عنطريق ال index

private void button1_Click(object sender, EventArgs e)
{
this.Controls[0].Dispose();

}

سوف يتم حذف العنصر صاحب الindex صفر


الثالثة عنطريق اسم أداة التحكم
private void button1_Click(object sender, EventArgs e)
{

this.Controls["button2"].Dispose(); }
في الطريقة الثالثة عند الضغط على الزر الأول سيتم حذف الزر الثاني
واذا قمت بالضغط مرة أخرى على الزر الأول سوف يحدث خطاء (استثناء) مما يسبب في توقف البرنامج والسبب انك قمت بالضغط مرة أخرى والزر الثاني لم يعد موجود فقد تم حذفه

كيف تحل المشكلة بهذا الشكل


private void button1_Click(object sender, EventArgs e)
{
if (this.Controls["button2"]!=null)
this.Controls["button2"].Dispose();


}



واذا اردت حذف جميع أدوات التحكم دفعه واحدة

int count = this.Controls.Count;
for (int i = 0; i < count; i++)
{

this.Controls[0].Dispose();
}
شرح لكيفية تشغيل الملفات الصوتية بصيغة mp3 👇🏻👇🏻👇🏻👇🏻👇🏻
step 3

تقوم اولا بالبحث عن كلمة media
ثانيا قم بتحديد الخيار الذي تظهر بجنبه رساله نهاية الامتداد حقها wmp.dll
ثم اضغط ok
step 5





WMPLib.WindowsMediaPlayer sound = new WMPLib.WindowsMediaPlayer(); // انشاء كائن

private void button1_Click(object sender, EventArgs e)
{
sound.URL = @"C:\Users\me\Desktop/Audio.mp3"; // هنا تكتب مسار الملف الصوتي الذي تريد تشغيله وتضع الامتداد مثل هذا السطر




sound.controls.play();
}

private void button2_Click(object sender, EventArgs e)
{
sound.controls.pause();
}
صلي على محمد.zip
6.8 MB
مشروع :

برنامج للتذكير بالصلاة على النبي

بلغة السي شارب

يمكنك تطويره ان اردت 😇
السلام عليكم

هل يمكن لانواع البيانات مثل (char,int,double,float) lن تجعل متغيراتها تساوي null
Final Results
63%
نعم
38%
لا
👍1
طبعاً الانواع السابقة اذا اسندت قيمه null بشكل مباشر عيطلع خطاء
بس هكذا يقبل في السي شارب

bool? t = null;
char? a = null;
float? x= null;
int? z = null;
اعتقد ان هذه الطريقة لاتعمل مع الاصدارات القديمة من الفيجوال استوديو
الرمز @

من خلالة نستطيع استخدام الكلمات المحجوزة كاسماء متغيرات

مثال
int @int = 0;

يجب ان تقوم باسناد قيمة للمتغير بشكل مباشر
مثال على طرق لاتصلح

int @int ;

او هكذا
int @int;
@int = 0;


وايضا

تحديد مسار ملف


@"c:\program file\newway"
C# - Anonymous Type
هل تعرف ماهي الأنواع المجهولة في لغة السي شارب ؟

النوع المجهول ، كما يوحي الاسم ، هو نوع ليس له أي اسم من أسماء أنواع البيانات المعروفة مثل int, char وغيرها من البيانات
تسمح لك C # بإنشاء كائن باستخدام الكلمة الأساسية new دون تحديد فئته

مثال

var Anonymous = new { id = 1, name = "myAnonymous ", age = 0 };

MessageBox.Show(Anonymous.name);


var Anonymous = new { id = 1, name = "myAnonymous ", age = 0 };

Console.WriteLine(Anonymous.name);


ملاحظات مهمه حول الأنواع المجهولة

1- خصائص النوع المجهول تكون للقراء فقط بمعنى لايمكن ان نعمل عملية اسناد للخاصية مثل
var Anonymous = new { id = 1, name = "myAnonymous ", age = 0 };

Anonymous.name = "hjshnks"; // Error

Console.WriteLine(Anonymous.name);


2- لايمكنك ان تعمل وسائط للدالة من نوع مجهول var
مثال
public void MyMethod(var x , var y)
{
//Error
}




3- المترجم هو الذي يقوم بتحديد نوع الخاصية على حسب القيمة مثلا الخاصية id عيعملها من نوع int و الخاصية name من نوع string
وهكذا


داخليًا ، يقوم المترجم تلقائيًا بإنشاء النوع الجديد للأنواع المجهولة.

للتأكد قم بكتابة الكود التالي

var Anonymous = new { id = 1, name = "myAnonymous ", age = 0 };

MessageBox.Show(Anonymous.GetType().ToString());


4- لايمكنك انشاء نوع بيانات مجهول (متغيرات مجهوله )
داخل كلاس او تركيب
بسم الله الرحمن الرحيم


interface
اليوم ان شاء الله سوف نقوم بشرح بعض المواضيع التي تعتبر من اساسيات البرمجة

نبدأ بالواجهة (interface)

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

يتم تعريف الواجهة باستخدام الكلمة الأساسية interface
يمكن أن تحتوي الواجهات على دوال وخصائص وأحداث


مثال على الواجهة

interface aaa
{

string Color { get; set; }
bool Open();
bool Close();
void Write(string text);
}
ملاحظات :

لا يمكنك استخدام أي معدّل وصول لأي عضو في الواجهة. جميع الأعضاء بشكل افتراضي هم أعضاء عامة

interface aaa
{

public string Color { get; set; } //error
protected bool Open(); //error
private bool Close(); //error
protected internal void Write(string text);//error
}


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

interface aaa
{

string Color { get; set; }
bool Open();
bool Close();

void Write(string text)
{
Console.Write(text); //error: cannot implement method
}
}


يمكن للكلاس او التركيب تنفيذ واجهة او اكثر باستخدام (:)
مثال
interface aaa
{

string Color { get; set; }
bool Open();
bool Close();
void Write(string text);

}
class MyClass:aaa
{

}
كذالك التركيب بنفس الطريقة السابقة
عندما تقوم بعمل نفس المثال السابق
سوف تظهر أخطاء بسبب انهو يجب عليك معالجة الدوال و الخصائص التي في الواجهة بداخل الكلاس مثل ما في الكود التالي
interface aaa
{

string Color { get; set; }
bool Open();
bool Close();
void Write(string text);

}
class MyClass:aaa
{
public string Color { get; set; }

private bool isOpen = false;

public bool Close()
{
isOpen = false;
Console.WriteLine("Cello closed for writing!");

return isOpen;
}

public bool Open()
{
isOpen = true;
Console.WriteLine("Cello open for writing!");

return isOpen;
}

public void Write(string text)
{
//write text if open
if (isOpen)
Console.WriteLine("Cello: " + text);
} }
ملاحظة :

يجب معالجة جميع أعضاء الواجهة باستخدام معدل الوصول عام
مثل ما في الكود السابق

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

string IPen.Color { get; set; }


void IPen.Write(string text)
{

}


يمكن أن تكون هناك فئات أو تراكيب متعددة تنفذ نفس الواجهة


مثال

class MyClass111:aaa
{

}

بعدا ذلك تقوم بمعالجة أعضاء الواجهة بداخل الكلاس السابق




مكنك الآن إنشاء كائنات من الفئة وتعيينها إلى متغير من نوع الواجهة

aaa ob1 = new myClass();

aaa ob2 = new myClass111();


يمكن للكلاس او التركيب تنفيذ واجهة او اكثر
مثال
class MyClass111:aaa,bbb
{

}

يمكن للواجهة ان ترث من واجهة او اكثر مثال

interface aaa:bbb
{
}




https://www.tgoop.com/CsharpWindowsForm
الفرق بين Close () و Exit()

this.Close();

عندما تقوم باستدعاء الدالة Close تقوم باغلاق الفورم الذي تم استدعاء الدالة منه
في حال لم يكن هذا الفورم هو الاساسي
عند إغلاق الفورم ، يتم إغلاق جميع الموارد التي تم إنشاؤها داخل الكائن ويتم التخلص من الفورم

عندما تغلق فورم بدء تشغيل البرنامج الفورم الاساسي، يجب أن يخرج التطبيق بالكامل تلقائيًا ، بما في ذلك إغلاق جميع الفورمات المفتوحة الأخرى في نفس المشروع وإلا فإنه يغلق النموذج الحالي فقط



Application.Exit()

تقوم باغلاق البرنامج بالكامل سوا تم استدعاها من فورم أساسي او غير أساسي
الفرق بين class و interface

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

يمكنك انشاء كائن من الكلاس بينما لايمكنك انشاء كائن من الواجهة يمكنك انشاء كائن لفئة يقوم بتنفيذ الواجهة

الكلاس عبارة عن كيان كامل الجسم مع أعضاء ودوال إلى جانب التعريف والتنفيذ. الواجهة هي مجرد مجموعة من التعريفات التي يجب عليك تنفيذها في كلاسك الذي يرث تلك الواجهة.


يمكن للكلاس ان يورث من اكثر من واجهة بينما الواجهة لاتستطيع الوراثة من الكلاسات او التراكيب تورث من واجهة او اكثر فقط
2025/07/13 17:27:37
Back to Top
HTML Embed Code: