30-06-15, 08:53 AM
(آخر تعديل لهذه المشاركة : 30-06-15, 08:55 AM {2} بواسطة silverlight.)
Handle الخاص ب الفورم عبارة عن IntPtr و هو عبارة عن رقم قيمته تتغير في كل مرة تقوم فيها بتشغيل برنامجك بمعني انك في كل مرة ستقوم فيها بتشغيل الفورم الرئيسي في مشروعك قيمة هذا IntPtr الخاصة بهذا الفورم ستتغير أي أنها ليست قيمة ثابتة و في واقع الأمر أنا يحلو لي ان ادعوه مفتاح خاص لكل فورم علي حده أو رقم مسلسل يقوم نظام التشغيل بإعطاؤه للفورم بحيث لا تجد له مثيلا وذلك حتي يستطيع نظام التشغيل مراقبة البرامج المفتوحة طبقا لهذا Handle
ويمكن اقرب مثال لذلك أيضا انت عندما تحاول ان تعطي ارقام مسلسلة لأي شئ فأنت غالبا لا تريد تكرار الارقام المسلسلة و بالتالي العناصر التي تنتمي لكل رقم مسلسل لديك تكون مرتبطة بهذا الرقم المسلسل و من هنا تأتي اهمية هذا الرقم في انه رقم متفرد لن تجد له مثيل في اي فورم مفتوح علي شاشة الكمبيوتر مثلا زمان و في بدايات الكمبيوتر و قبل الدوت نت كل شئ تقريبا كان له Handle او IntPtr مثل الفونت Font و الصورة Image/Bitmap و اشياء اخري
فيما يختص بمشروعك و بالنسبة لأي فورم موجود به فمن السهل استرجاع قيمة Handle الخاصة بكل فورم علي حدة او مثلا يمكنك ان تسحدم My.Application.OpenForms و هي قيمتها عبارة عن FormCollection و منها سوف يمكنك استرجاع قمية Handle لحميع الفورم الموجودة في مشروعك
, وطبعا و بما ان مايكروسوفت تكتب الكود الخاص ب كلاسات الدوت نت بأسلوب يخدم أهدافها هي في القام الأول و هذا خقها طبعا بالتالي قامت بتوزيع دوال API القديمة في أكثر من مكان علشان احنا نتعب شوية لكي نصل للنتائج الني نريدها
عموما انت تحتاج الي استخدام الكلاس Processs لكي تسترجع Handle الخاص بأي نافذة مفتوجة و التي لا تنتمي الي نوافذ برنامجك
ويمكن اقرب مثال لذلك أيضا انت عندما تحاول ان تعطي ارقام مسلسلة لأي شئ فأنت غالبا لا تريد تكرار الارقام المسلسلة و بالتالي العناصر التي تنتمي لكل رقم مسلسل لديك تكون مرتبطة بهذا الرقم المسلسل و من هنا تأتي اهمية هذا الرقم في انه رقم متفرد لن تجد له مثيل في اي فورم مفتوح علي شاشة الكمبيوتر مثلا زمان و في بدايات الكمبيوتر و قبل الدوت نت كل شئ تقريبا كان له Handle او IntPtr مثل الفونت Font و الصورة Image/Bitmap و اشياء اخري
فيما يختص بمشروعك و بالنسبة لأي فورم موجود به فمن السهل استرجاع قيمة Handle الخاصة بكل فورم علي حدة او مثلا يمكنك ان تسحدم My.Application.OpenForms و هي قيمتها عبارة عن FormCollection و منها سوف يمكنك استرجاع قمية Handle لحميع الفورم الموجودة في مشروعك
, وطبعا و بما ان مايكروسوفت تكتب الكود الخاص ب كلاسات الدوت نت بأسلوب يخدم أهدافها هي في القام الأول و هذا خقها طبعا بالتالي قامت بتوزيع دوال API القديمة في أكثر من مكان علشان احنا نتعب شوية لكي نصل للنتائج الني نريدها
عموما انت تحتاج الي استخدام الكلاس Processs لكي تسترجع Handle الخاص بأي نافذة مفتوجة و التي لا تنتمي الي نوافذ برنامجك

